import { Options } from "../models/options";
import { ClientInstance } from "./clientInstance";
import { PageItem } from "../models/pageItem";
import { Sitemap } from "../models/sitemap";
import { BatchMethods } from "./batchMethods";
import { PageModel } from "../models/pageModel";
import { ContentSectionDefinition } from "../models/contentSectionDefinition";
import { PageHistory } from "../models/pageHistory";
import { ItemComments } from "../models/itemComments";
import { WorkflowOperationType } from "../enums/workflowOperationType";
export declare class PageMethods {
    _options: Options;
    _clientInstance: ClientInstance;
    _batchMethods: BatchMethods;
    constructor(options: Options);
    getSitemap(guid: string, locale: string): Promise<Sitemap[]>;
    getPageTemplates(guid: string, locale: string, includeModuleZones: boolean, searchFilter?: string): Promise<PageModel[]>;
    getPageTemplate(guid: string, locale: string, pageTemplateId: number): Promise<PageModel>;
    getPageTemplateName(guid: string, locale: string, templateName: string): Promise<PageModel>;
    deletePageTemplate(guid: string, locale: string, pageTemplateId: number): Promise<string>;
    getPageItemTemplates(guid: string, locale: string, id: number): Promise<ContentSectionDefinition[]>;
    savePageTemplate(guid: string, locale: string, pageModel: PageModel): Promise<PageModel>;
    getPage(pageID: number, guid: string, locale: string): Promise<PageItem>;
    publishPage(pageID: number, guid: string, locale: string, comments?: string, returnBatchId?: boolean): Promise<number[]>;
    unPublishPage(pageID: number, guid: string, locale: string, comments?: string, returnBatchId?: boolean): Promise<number[]>;
    /**
     * Perform a batch workflow operation on multiple pages.
     * Supports Publish, Unpublish, Approve, Decline, and RequestApproval operations.
     * @param pageIDs Array of page IDs to process
     * @param guid The GUID of the user making the request
     * @param locale The locale of the pages
     * @param operation The workflow operation type (Publish, Unpublish, Approve, Decline, RequestApproval)
     * @param returnBatchId Whether to return the batch ID immediately
     * @returns The IDs of the processed pages
     */
    batchWorkflowPages(pageIDs: number[], guid: string, locale: string, operation: WorkflowOperationType, returnBatchId?: boolean): Promise<number[]>;
    pageRequestApproval(pageID: number, guid: string, locale: string, comments?: string, returnBatchId?: boolean): Promise<number[]>;
    approvePage(pageID: number, guid: string, locale: string, comments?: string, returnBatchId?: boolean): Promise<number[]>;
    declinePage(pageID: number, guid: string, locale: string, comments?: string, returnBatchId?: boolean): Promise<number[]>;
    deletePage(pageID: number, guid: string, locale: string, comments?: string, returnBatchId?: boolean): Promise<number[]>;
    /**
     * Save a new page or update an existing page.
     * @param pageItem The PageItem to save
     * @param guid The GUID of the user making the request
     * @param locale The locale of the page
     * @param parentPageID The ID of the parent page
     * @param placeBeforePageItemID The ID of the page item to place this page before
     * @param returnBatchId Whether to return the batch ID immediately
     * @param pageIDInOtherLocale The ID of the page in the other locale if you need to link it up.
     * @param otherLocale The other locale to link the page to.
     * @param linkExistingComponents Whether to link existing components to the page. If not set, the page save will create new components for each content zone.
     * @returns The IDs of the created or updated pages
     */
    savePage(pageItem: PageItem, guid: string, locale: string, parentPageID?: number, placeBeforePageItemID?: number, returnBatchId?: boolean, pageIDInOtherLocale?: number, otherLocale?: string, linkExistingComponents?: boolean): Promise<number[]>;
    getPageHistory(locale: string, guid: string, pageID: number, take?: number, skip?: number): Promise<PageHistory>;
    getPageComments(locale: string, guid: string, pageID: number, take?: number, skip?: number): Promise<ItemComments>;
}
