import { ZentinelRequestBodyType, ZentinelResponseBodyType } from "..";
import { Consumer } from "../types/auth";
import { ZentinelInitOptions } from "../types/options";
import { ZentinelDataMapper } from "./data-mapper";
import { ZentinelMessageTypes } from "./message-types";
export declare class Zentinel {
    private iframe;
    private loader;
    private options;
    private clientId;
    constructor(options?: Partial<ZentinelInitOptions>);
    initDataMapper(categoryId: number): Promise<ZentinelDataMapper>;
    getToken(): Promise<string | null>;
    restoreSession(): Promise<Consumer>;
    loginWithRedirection(redirectionLink: string): void;
    loginWithPopupWindow(): Promise<Consumer>;
    createCorporation(data: any): Promise<string>;
    encryptForCorporation(data: any): Promise<any>;
    decryptForCorporation(data: any): Promise<any>;
    selectCorporation(): Promise<string | undefined>;
    registration(email: string, password: string, clientId: string): Promise<Consumer>;
    confirmEmail(token: string): Promise<string>;
    logout(): void;
    private createIFRAME;
    sendMessageSync<MessageType extends ZentinelMessageTypes>(type: MessageType, body?: ZentinelRequestBodyType<MessageType>, options?: any): void;
    sendMessage<MessageType extends ZentinelMessageTypes>(type: MessageType, body?: ZentinelRequestBodyType<MessageType>, options?: any): Promise<ZentinelResponseBodyType<MessageType>>;
    private serialize;
}
