import { Link } from '../components/link';
import { Container } from '../components/container';
import { IFrame } from '../components/iframe';
import { IEventData, IFrameEvent } from '../components/iframe-event';
import { Configuration } from '../widget/configuration';
import { Standalone3dsService } from '../canvas-3ds/services/index';
import { EventEmitter } from "../helper/event-emitter";
/**
 * List of available token's content formats
 * @enum TOKEN_FORMAT
 *
 * @type {object}
 * @param {string} HTML=html
 */
declare enum TOKEN_FORMAT {
    HTML = "html",
    URL = "url",
    STANDALONE_3DS = "standalone_3ds"
}
/**
 * List of available event's name
 * @const EVENT
 *
 * @type {object}
 * @param {string} CHARGE_AUTH_SUCCESS=chargeAuthSuccess
 * @param {string} CHARGE_AUTH_REJECT=chargeAuthReject
 * @param {string} ADDITIONAL_DATA_SUCCESS=additionalDataCollectSuccess
 * @param {string} ADDITIONAL_DATA_REJECT=additionalDataCollectReject
 * @param {string} CHARGE_AUTH=chargeAuth
 */
/**
 * List of available event's name for Standalone 3ds flow
 * @const STANDALONE_3DS_EVENT
 *
 * @type {object}
 * @param {string} CHARGE_AUTH_SUCCESS=chargeAuthSuccess
 * @param {string} CHARGE_AUTH_REJECT=chargeAuthReject
 * @param {string} CHARGE_AUTH_DECOUPLED=chargeAuthDecoupled
 * @param {string} CHARGE_AUTH_CHALLENGE=chargeAuthChallenge
 * @param {string} CHARGE_AUTH_INFO=chargeAuthInfo
 * @param {string} ERROR=error
*/
/**
 * Class Canvas3ds include method for working on html
 * @constructor
 *
 * @param {string} selector - Selector of html element. Container for widget
 * @param {string} token - Pre authorized token
 * @example
 * var widget = new Canvas3ds('#widget', 'token');
 *
 *
 */
declare class Canvas3ds {
    protected link: Link;
    protected configs: Configuration[];
    protected publicKey: string;
    protected token: {
        content: string;
        format: TOKEN_FORMAT;
        charge_3ds_id: string;
    };
    protected standalone3dsService: Standalone3dsService;
    protected container: Container;
    protected iFrame: IFrame;
    protected event: IFrameEvent;
    protected eventEmitter: EventEmitter;
    /** @constructs */ constructor(selector: string, token: string);
    protected static extractToken(token: string): {
        content: string;
        format: TOKEN_FORMAT;
        charge_3ds_id: string;
    };
    /**
     * The final method to beginning, the load process of widget to html
     *
     */
    load(): void;
    /**
     * Current method can change environment. By default environment = sandbox.
     * Also we can change domain alias for this environment. By default domain_alias = paydock.com
     *
     * @example
     * widget.setEnv('production');
     * @param {string} env - sandbox, production
     * @param {string} [alias] - Own domain alias
     */
    setEnv(env: string, alias?: string): void;
    getEnv(): string;
    on(eventName: string): Promise<IEventData>;
    on(eventName: string, cb: (data: IEventData) => void): any;
    /**
     * Using this method you can hide widget after load
     * @param {boolean} [saveSize=false] - using this param you can save iframe's size
     */
    hide(saveSize: boolean): void;
    /**
     * Using this method you can show widget after using hide method
     *
     */
    show(): void;
    /**
     * Using this method you can reload widget
     *
     */
    reload(): void;
}
export { Canvas3ds };
//# sourceMappingURL=canvas-3ds.d.ts.map