import { IDisposable, CorvinaPages, PreauthorizedCreditTransactionInDTO } from "./common";
import { ITheme } from "./ITheme";
export declare enum CorvinaConnectEventType {
    ORGANIZATION_ID_CHANGED = "ORGANIZATION_ID_CHANGED",
    ORGANIZATION_RESOURCE_ID_CHANGED = "ORGANIZATION_RESOURCE_ID_CHANGED",
    JWT_CHANGED = "JWT_CHANGED",
    USER_CHANGED = "USER_CHANGED",
    THEME_CHANGED = "THEME_CHANGED",
    BRAND_NAME_CHANGED = "BRAND_NAME_CHANGED",
    IFRAME_HREF_CHANGED = "IFRAME_HREF_CHANGED",
    TRANSACTIONS_AUTHORIZATION_RESPONSE = "TRANSACTIONS_AUTHORIZATION_RESPONSE"
}
export declare class CorvinaConnect implements IDisposable {
    private _jwt;
    private _username;
    private _organizationId;
    private _organizationResourceId;
    private _corvinaHost;
    private _corvinaDomain;
    private _theme;
    private _defaultStandardTime;
    private _corvinaHostWindow;
    private _eventCallback;
    private _onMessageRef;
    private _brandName;
    private _href;
    private _urlWatcher;
    private static _instance;
    private _window;
    constructor({ jwt, username, organizationId, organizationResourceId, corvinaHost, corvinaDomain, theme, brandName, defaultStandardTime, currentWindow, corvinaHostWindow }: {
        jwt: string;
        username: string;
        organizationId: string;
        organizationResourceId: string;
        corvinaHost: string;
        corvinaDomain: string;
        theme?: ITheme;
        brandName: string;
        defaultStandardTime: any;
        currentWindow?: Window;
        corvinaHostWindow: Window;
    });
    static dispose(): void;
    dispose(): void;
    get jwt(): string;
    get username(): string;
    get organizationId(): string;
    get organizationResourceId(): string | undefined;
    get corvinaHost(): string;
    get corvinaDomain(): string;
    get theme(): ITheme | undefined;
    get defaultStandardTime(): any;
    get brandName(): string;
    private onMessage;
    private onThemeChanged;
    private onBrandNameChanged;
    private onUserChanged;
    private onJwtChanged;
    private onOrganizationIdChanged;
    private onOrganizationResourceIdChanged;
    private onIframeHrefChanged;
    private onPreauthorizedTransactionResponse;
    off(event: CorvinaConnectEventType): void;
    on(event: CorvinaConnectEventType, callback: (value: any) => void): void;
    navigateTo(page: string | CorvinaPages): void;
    static create({ corvinaHost, currentWindow, corvinaHostWindow, timeoutMs }: {
        corvinaHost: string;
        currentWindow?: Window;
        corvinaHostWindow?: Window;
        timeoutMs?: number;
    }): Promise<CorvinaConnect>;
    enableNavigationSync(filterNewHref?: (newHref: string) => string): void;
    disableNavigationSync(): void;
    promptPreauthorizedTransactionAuthorization(dto: PreauthorizedCreditTransactionInDTO[]): void;
}
