import { DemetraOptions, DemetraRequestLanguagesOptions, DemetraRequestSiteMapOptions, DemetraRequestArchiveOptions, DemetraRequestExtraOptions, DemetraRequestMenuOptions, DemetraRequestPageOptions, DemetraRequestChildrenOptions, DemetraRequestTaxonomyOptions, DemetraRequestAttachmentsOptions, SEND_MODES, WpData, WpFile } from './declarations';
import DemetraRequestLanguages from './Requests/DemetraRequestLanguages';
import DemetraRequestSiteMap from './Requests/DemetraRequestSiteMap';
import DemetraRequestPage from './Requests/DemetraRequestPage';
import DemetraRequestChildren from './Requests/DemetraRequestChildren';
import DemetraRequestArchive from './Requests/DemetraRequestArchive';
import DemetraRequestExtra from './Requests/DemetraRequestExtra';
import DemetraRequestMenu from './Requests/DemetraRequestMenu';
import DemetraRequestTaxonomy from './Requests/DemetraRequestTaxonomy';
import DemetraRequestAttachments from './Requests/DemetraRequestAttachments';
declare class Demetra {
    static readonly SEND_MODES: typeof SEND_MODES;
    private readonly cache;
    private readonly queue;
    private options;
    constructor(options?: Partial<DemetraOptions>);
    fetchQueue(sendModes?: SEND_MODES): Promise<Array<object>>;
    fetchLanguages(site: string, options?: Partial<DemetraRequestLanguagesOptions>): Promise<WpData>;
    fetchSitemap(site: string, options?: Partial<DemetraRequestSiteMapOptions>): Promise<WpData>;
    fetchPage(id: string | number, options?: Partial<DemetraRequestPageOptions>): Promise<WpData>;
    fetchChildren(id: number | Array<number> | string | Array<string>, options?: Partial<DemetraRequestChildrenOptions>): Promise<WpData>;
    fetchArchive(id: string, options?: Partial<DemetraRequestArchiveOptions>): Promise<WpData>;
    fetchExtra(id: string, options?: Partial<DemetraRequestExtraOptions>): Promise<WpData>;
    fetchMenu(id: string, options?: Partial<DemetraRequestMenuOptions>): Promise<WpData>;
    fetchTaxonomy(id: string | Array<string>, options?: Partial<DemetraRequestTaxonomyOptions>): Promise<WpData>;
    fetchAttachments(site: string, options?: Partial<DemetraRequestAttachmentsOptions>): Promise<WpData>;
    subscribe(email: string, lang?: string, site?: string): Promise<WpData>;
    subscribeWithAdditionalData(email: string, data: Map<string, string>, lang?: string, site?: string): Promise<WpData>;
    send(id: number, recipients: string, data: object, files?: Array<File>): Promise<WpData>;
    private fetch;
    upload(files: Array<File> | File): Promise<Array<WpFile>>;
    private sendOnce;
    private sendSimultaneously;
    private sendConsequentially;
    private debugLog;
    private handleError;
    private parseFromLocalCache;
    get endpoint(): string;
    set endpoint(url: string);
    get uploadEndpoint(): string;
    set uploadEndpoint(url: string);
    get lang(): string;
    set lang(lang: string);
}
export default Demetra;
export { DemetraRequestPage, DemetraRequestChildren, DemetraRequestArchive, DemetraRequestMenu, DemetraRequestExtra, DemetraRequestTaxonomy, DemetraRequestSiteMap, DemetraRequestLanguages, DemetraRequestAttachments, };
//# sourceMappingURL=index.d.ts.map