import { ElTopDialog, ElTopDialogPage, MoveDirection, TopDialogOptions } from './types';
import { $el } from '../../types';
export declare abstract class TopDialogWorker {
    static state: {
        load: TopDialogOptions["load"] | undefined;
        decoratorOnCreate: TopDialogOptions["decoratorOnCreate"] | undefined;
        /**
         * Порядковый номер перехода в диалоговых окнах
         *
         * Для расчета анимации Вперед / Назад
         */
        viewPageN: number;
    };
    private static inited;
    /**
     * Инициировать события слежения за парамтерами url
     *
     * Если в параметрах есть запрос на открытие диалогового окна, TopDialog будет автоматически подключен на страницу
     */
    static init(options?: TopDialogOptions): void;
    private static opendDialogsFromChangeUrl;
    static getDialogsUtils(): Promise<{
        getElDialogById: (id: string) => ElTopDialog | null;
        updatePageVue: (dialogId: string, pageName?: string, pageNameNext?: string) => Promise<void>;
        recalcPositions: () => void;
        toViewDirty: (toViewPageName: string, moveDirection?: MoveDirection) => Promise<void>;
        toView: (viewNameOrElDialog: ElTopDialog | JQuery<ElTopDialog> | string, pageName?: string, args?: string[], moveDirection?: MoveDirection, callback?: Function) => Promise<void>;
        toViewPage: (elDialog: ElTopDialog | JQuery<ElTopDialog>, pageName?: string, args?: string[], moveDirection?: MoveDirection) => Promise<void>;
        toPrevPage: (elDialog: ElTopDialog) => void;
        setLoading: (elPages: ElTopDialogPage[] | JQuery<ElTopDialogPage>, isLoading: boolean, duration?: number) => void;
        isLoading: (elPage: ElTopDialogPage | JQuery<ElTopDialogPage>) => boolean;
        inAnimation: (elDialog: ElTopDialog | JQuery<ElTopDialog>) => boolean;
        close: (dialogId: string) => void;
    }>;
    static getDialog(el: HTMLElement): ElTopDialog | null;
    /**
     * todo: Переписать на сайте на this.getDialog()
     *
     * @deprecated Для обратной совместимости
     */
    static get$dialog($el: $el): JQuery<HTMLElement>;
    static getPage(el: HTMLElement): ElTopDialogPage | null;
    /**
     * todo: Переписать на сайте на this.getPage()
     *
     * @deprecated Для обратной совместимости
     */
    static get$page($el: $el): JQuery<HTMLElement>;
    /**
     * todo: Переписать на сайте на this.getPairPage()
     *
     * @deprecated Для обратной совместимости
     */
    static get$pairPage($el: $el): JQuery<HTMLElement>;
    static getPairPage(el: HTMLElement): HTMLElement[] | undefined;
    /**
     * Закрыть диалоговое окно
     */
    static close(dialogId: string): void;
    /**
     * Размонтировать $.dialog
     */
    static destroy(dialogId: string): void;
    /**
     * Сгенерировать ссылку на страницу в диалоговом окне
     * @param toView - указатель в формате: dialog_{{ dialogId }}={{ pageName }}:{{ args }}
     * @param moveDirection
     */
    static genViewPageHash(toView: string, moveDirection?: MoveDirection): string;
    /**
     * Сравнить версию открытых диалоговых окон
     * @returns вернет true, если состояния открытых окон изменилось
     */
    static compareStates(hash: string, hash2: string): boolean;
    static opendDialogsFromUrl: () => Promise<true | void>;
}
