/**
 * JSON parse reviver that converts ISO date strings to Date objects.
 * This is needed because when using interface-based types (after NSwag migration),
 * dates are not automatically converted from strings to Date objects.
 */
declare function dateReviver(key: string, value: unknown): unknown;
export declare class AuthApiBase {
    authToken: string;
    /**
     * JSON parse reviver for converting date strings to Date objects.
     * Subclasses use this when parsing API responses.
     * The dateReviver function is defined in File.Header.liquid template.
     */
    protected jsonParseReviver: typeof dateReviver;
    protected constructor();
    getBaseUrl(defaultUrl: string, baseUrl: string): string;
    setAuthToken(token: string): void;
    protected transformOptions(options: any): Promise<any>;
}
export declare class PageBuilderClient extends AuthApiBase {
    private http;
    private baseUrl;
    constructor(baseUrl?: string, http?: {
        fetch(url: RequestInfo, init?: RequestInit): Promise<Response>;
    });
    /**
     * @param storeId (optional)
     * @param theme (optional)
     * @param path (optional)
     * @param type (optional)
     * @param draft (optional)
     * @return OK
     */
    getTemplate(storeId?: string | undefined, theme?: string | undefined, path?: string | undefined, type?: string | undefined, draft?: boolean | undefined): Promise<void>;
    protected processGetTemplate(response: Response): Promise<void>;
    /**
     * @param storeId (optional)
     * @param theme (optional)
     * @return OK
     */
    getSettings(storeId?: string | undefined, theme?: string | undefined): Promise<void>;
    protected processGetSettings(response: Response): Promise<void>;
    /**
     * @param storeId (optional)
     * @param theme (optional)
     * @return OK
     */
    getTemplates(storeId?: string | undefined, theme?: string | undefined): Promise<void>;
    protected processGetTemplates(response: Response): Promise<void>;
    /**
     * @param storeId (optional)
     * @param theme (optional)
     * @return OK
     */
    getObjects(storeId?: string | undefined, theme?: string | undefined): Promise<void>;
    protected processGetObjects(response: Response): Promise<void>;
    /**
     * @param storeId (optional)
     * @param theme (optional)
     * @return OK
     */
    getSectionsSettings(storeId?: string | undefined, theme?: string | undefined): Promise<void>;
    protected processGetSectionsSettings(response: Response): Promise<void>;
    /**
     * @param storeId (optional)
     * @param theme (optional)
     * @return OK
     */
    getSchemasCatalog(storeId?: string | undefined, theme?: string | undefined): Promise<void>;
    protected processGetSchemasCatalog(response: Response): Promise<void>;
    /**
     * @param storeId (optional)
     * @param theme (optional)
     * @return OK
     */
    getSchemaByKey(kind: string, key: string, storeId?: string | undefined, theme?: string | undefined): Promise<void>;
    protected processGetSchemaByKey(response: Response): Promise<void>;
    /**
     * @param storeId (optional)
     * @param theme (optional)
     * @param type (optional)
     * @param folder (optional)
     * @param pattern (optional)
     * @param keyword (optional)
     * @return OK
     */
    search(storeId?: string | undefined, theme?: string | undefined, type?: string | undefined, folder?: string | undefined, pattern?: string | undefined, keyword?: string | undefined): Promise<string>;
    protected processSearch(response: Response): Promise<string>;
    /**
     * @param storeId (optional)
     * @param theme (optional)
     * @param draft (optional)
     * @param body (optional)
     * @return OK
     */
    saveTemplates(storeId?: string | undefined, theme?: string | undefined, draft?: boolean | undefined, body?: SaveFilesModel | undefined): Promise<void>;
    protected processSaveTemplates(response: Response): Promise<void>;
}
export declare class PageBuilderPageClient extends AuthApiBase {
    private http;
    private baseUrl;
    constructor(baseUrl?: string, http?: {
        fetch(url: RequestInfo, init?: RequestInit): Promise<Response>;
    });
    /**
     * @param body (optional)
     * @return OK
     */
    searchGroups(body?: PageBuilderPageSearchCriteria | undefined): Promise<GroupedPageBuilderPageSearchResult>;
    protected processSearchGroups(response: Response): Promise<GroupedPageBuilderPageSearchResult>;
    /**
     * @param responseGroup (optional)
     * @return OK
     */
    getGroup(groupId: string, responseGroup?: string | undefined): Promise<GroupedPageBuilderPage>;
    protected processGetGroup(response: Response): Promise<GroupedPageBuilderPage>;
    /**
     * @return OK
     */
    deleteGroup(groupId: string): Promise<void>;
    protected processDeleteGroup(response: Response): Promise<void>;
    /**
     * @param body (optional)
     * @return OK
     */
    updateGroup(body?: GroupedPageBuilderPage | undefined): Promise<GroupedPageBuilderPage>;
    protected processUpdateGroup(response: Response): Promise<GroupedPageBuilderPage>;
    /**
     * @param body (optional)
     * @return OK
     */
    createGroup(body?: GroupedPageBuilderPage | undefined): Promise<GroupedPageBuilderPage>;
    protected processCreateGroup(response: Response): Promise<GroupedPageBuilderPage>;
    /**
     * @param body (optional)
     * @return OK
     */
    createGroupPage(body?: CreateGroupedPageRequest | undefined): Promise<GroupedPageBuilderPage>;
    protected processCreateGroupPage(response: Response): Promise<GroupedPageBuilderPage>;
    /**
     * @param ids (optional)
     * @return No Content
     */
    archiveGroups(ids?: string[] | undefined): Promise<void>;
    protected processArchiveGroups(response: Response): Promise<void>;
    /**
     * @param publish (optional)
     * @return OK
     */
    publishGroup(groupId: string, publish?: boolean | undefined): Promise<void>;
    protected processPublishGroup(response: Response): Promise<void>;
    /**
     * @return OK
     */
    publishStatus(groupId: string): Promise<FilePublishStatus>;
    protected processPublishStatus(response: Response): Promise<FilePublishStatus>;
    /**
     * @param draft (optional)
     * @return OK
     */
    getPageContent(groupId: string, draft?: boolean | undefined): Promise<void>;
    protected processGetPageContent(response: Response): Promise<void>;
    /**
     * @return OK
     */
    savePageContent(groupId: string): Promise<void>;
    protected processSavePageContent(response: Response): Promise<void>;
    /**
     * @param body (optional)
     * @return OK
     */
    savePageContentJson(groupId: string, body?: UpdatePageContentRequest | undefined): Promise<void>;
    protected processSavePageContentJson(response: Response): Promise<void>;
    /**
     * @return OK
     */
    copyPageContent(targetGroupId: string, sourceGroupId: string): Promise<void>;
    protected processCopyPageContent(response: Response): Promise<void>;
}
export declare class PageBuilderPageSettingsClient extends AuthApiBase {
    private http;
    private baseUrl;
    constructor(baseUrl?: string, http?: {
        fetch(url: RequestInfo, init?: RequestInit): Promise<Response>;
    });
    /**
     * @param storeId (optional)
     * @return OK
     */
    getAvailableLanguages(storeId?: string | undefined): Promise<string[]>;
    protected processGetAvailableLanguages(response: Response): Promise<string[]>;
    /**
     * @return OK
     */
    getUserGroups(): Promise<string[]>;
    protected processGetUserGroups(response: Response): Promise<string[]>;
    /**
     * @param body (optional)
     * @return OK
     */
    getOrganizations(body?: MembersSearchCriteria | undefined): Promise<MemberSearchResult>;
    protected processGetOrganizations(response: Response): Promise<MemberSearchResult>;
    /**
     * @return OK
     */
    getOrganization(id: string): Promise<Member>;
    protected processGetOrganization(response: Response): Promise<Member>;
}
export declare enum AddressType {
    Undefined = "Undefined",
    Billing = "Billing",
    Shipping = "Shipping",
    BillingAndShipping = "BillingAndShipping",
    Pickup = "Pickup"
}
export interface CreateGroupedPageRequest {
    storeId?: string | undefined;
    name?: string | undefined;
    permalink?: string | undefined;
    cultureName?: string | undefined;
    organizationId?: string | undefined;
    visibility?: boolean;
    userGroups?: string | undefined;
    startDate?: Date | undefined;
    endDate?: Date | undefined;
    content?: string | undefined;
}
export interface CustomerAddress {
    id?: string | undefined;
    addressType?: AddressType;
    key?: string | undefined;
    name?: string | undefined;
    organization?: string | undefined;
    countryCode?: string | undefined;
    countryName?: string | undefined;
    city?: string | undefined;
    postalCode?: string | undefined;
    zip?: string | undefined;
    line1?: string | undefined;
    line2?: string | undefined;
    regionId?: string | undefined;
    regionName?: string | undefined;
    firstName?: string | undefined;
    middleName?: string | undefined;
    lastName?: string | undefined;
    phone?: string | undefined;
    email?: string | undefined;
    outerId?: string | undefined;
    isDefault?: boolean;
    description?: string | undefined;
}
export interface DynamicObjectProperty {
    objectId?: string | undefined;
    values?: DynamicPropertyObjectValue[] | undefined;
    name?: string | undefined;
    description?: string | undefined;
    objectType?: string | undefined;
    isArray?: boolean;
    isDictionary?: boolean;
    isMultilingual?: boolean;
    isRequired?: boolean;
    displayOrder?: number | undefined;
    valueType?: DynamicPropertyValueType;
    displayNames?: DynamicPropertyName[] | undefined;
    createdDate?: Date;
    modifiedDate?: Date | undefined;
    createdBy?: string | undefined;
    modifiedBy?: string | undefined;
    id?: string | undefined;
}
export interface DynamicPropertyName {
    locale?: string | undefined;
    name?: string | undefined;
}
export interface DynamicPropertyObjectValue {
    objectType?: string | undefined;
    objectId?: string | undefined;
    locale?: string | undefined;
    value?: any | undefined;
    valueId?: string | undefined;
    valueType?: DynamicPropertyValueType;
    propertyId?: string | undefined;
    propertyName?: string | undefined;
}
export declare enum DynamicPropertyValueType {
    Undefined = "Undefined",
    ShortText = "ShortText",
    LongText = "LongText",
    Integer = "Integer",
    Decimal = "Decimal",
    DateTime = "DateTime",
    Boolean = "Boolean",
    Html = "Html",
    Image = "Image"
}
export interface FilePublishStatus {
    published?: boolean;
    hasChanges?: boolean;
}
export interface GroupedPageBuilderPage {
    storeId?: string | undefined;
    pages?: PageBuilderPage[] | undefined;
    cultureName?: string | undefined;
    name?: string | undefined;
    permalink?: string | undefined;
    organizationId?: string | undefined;
    visibility?: boolean;
    userGroups?: string | undefined;
    startDate?: Date | undefined;
    endDate?: Date | undefined;
    readonly status?: string | undefined;
    readonly hasChanges?: boolean;
    createdDate?: Date;
    modifiedDate?: Date | undefined;
    createdBy?: string | undefined;
    modifiedBy?: string | undefined;
    id?: string | undefined;
}
export interface GroupedPageBuilderPageSearchResult {
    totalCount?: number;
    results?: GroupedPageBuilderPage[] | undefined;
}
export interface Member {
    name?: string | undefined;
    memberType?: string | undefined;
    outerId?: string | undefined;
    status?: string | undefined;
    addresses?: CustomerAddress[] | undefined;
    phones?: string[] | undefined;
    emails?: string[] | undefined;
    notes?: Note[] | undefined;
    groups?: string[] | undefined;
    iconUrl?: string | undefined;
    relevanceScore?: number | undefined;
    readonly objectType?: string | undefined;
    dynamicProperties?: DynamicObjectProperty[] | undefined;
    useDynamicPropertyAccessor?: boolean;
    dynamicPropertyAccessor?: any | undefined;
    readonly seoObjectType?: string | undefined;
    seoInfos?: SeoInfo[] | undefined;
    createdDate?: Date;
    modifiedDate?: Date | undefined;
    createdBy?: string | undefined;
    modifiedBy?: string | undefined;
    id?: string | undefined;
}
export interface MemberSearchResult {
    totalCount?: number;
    results?: Member[] | undefined;
}
export interface MembersSearchCriteria {
    memberType?: string | undefined;
    memberTypes?: string[] | undefined;
    group?: string | undefined;
    groups?: string[] | undefined;
    memberId?: string | undefined;
    deepSearch?: boolean;
    outerIds?: string[] | undefined;
    responseGroup?: string | undefined;
    objectType?: string | undefined;
    objectTypes?: string[] | undefined;
    objectIds?: string[] | undefined;
    keyword?: string | undefined;
    searchPhrase?: string | undefined;
    languageCode?: string | undefined;
    sort?: string | undefined;
    readonly sortInfos?: SortInfo[] | undefined;
    skip?: number;
    take?: number;
}
export interface Note {
    title?: string | undefined;
    body?: string | undefined;
    outerId?: string | undefined;
    createdDate?: Date;
    modifiedDate?: Date | undefined;
    createdBy?: string | undefined;
    modifiedBy?: string | undefined;
    id?: string | undefined;
}
export interface PageBuilderPage {
    groupId?: string | undefined;
    storeId?: string | undefined;
    status?: string | undefined;
    content?: string | undefined;
    createdDate?: Date;
    modifiedDate?: Date | undefined;
    createdBy?: string | undefined;
    modifiedBy?: string | undefined;
    id?: string | undefined;
}
export interface PageBuilderPageSearchCriteria {
    storeId?: string | undefined;
    statuses?: string | undefined;
    lifecycle?: string | undefined;
    activeOn?: Date | undefined;
    modifiedSince?: Date | undefined;
    modifiedBefore?: Date | undefined;
    responseGroup?: string | undefined;
    objectType?: string | undefined;
    objectTypes?: string[] | undefined;
    objectIds?: string[] | undefined;
    keyword?: string | undefined;
    searchPhrase?: string | undefined;
    languageCode?: string | undefined;
    sort?: string | undefined;
    readonly sortInfos?: SortInfo[] | undefined;
    skip?: number;
    take?: number;
}
export interface SaveFilesModel {
    files?: string | undefined;
}
export interface SeoInfo {
    name?: string | undefined;
    semanticUrl?: string | undefined;
    outline?: string | undefined;
    pageTitle?: string | undefined;
    metaDescription?: string | undefined;
    imageAltDescription?: string | undefined;
    metaKeywords?: string | undefined;
    storeId?: string | undefined;
    organizationId?: string | undefined;
    objectId?: string | undefined;
    objectType?: string | undefined;
    isActive?: boolean;
    languageCode?: string | undefined;
    createdDate?: Date;
    modifiedDate?: Date | undefined;
    createdBy?: string | undefined;
    modifiedBy?: string | undefined;
    id?: string | undefined;
}
export declare enum SortDirection {
    Ascending = "Ascending",
    Descending = "Descending"
}
export interface SortInfo {
    sortColumn?: string | undefined;
    sortDirection?: SortDirection;
}
export interface UpdatePageContentRequest {
    content?: string | undefined;
}
export declare class ApiException extends Error {
    message: string;
    status: number;
    response: string;
    headers: {
        [key: string]: any;
    };
    result: any;
    constructor(message: string, status: number, response: string, headers: {
        [key: string]: any;
    }, result: any);
    protected isApiException: boolean;
    static isApiException(obj: any): obj is ApiException;
}
export {};
//# sourceMappingURL=virtocommerce.pagebuildermodule.d.ts.map