export type TopDialogOptions = {
    /**
     * Загрузчик для компонентов диалоговых окон по их id
     */
    load?: TopDialogLoad;
    /**
     * Глобальный декоратор на событие инициализации диалогового окна
     */
    decoratorOnCreate?: DecoratorOnCreate;
    /**
     * Пауза перед загрузкой утилиты диалоговых окон в ms
     *
     * Для производительности
     *
     * Утилиты будут в любом случае загружены при работе с диалоговыми окнами, но их не надо грузить каждый раз после открытия страинцы
     */
    autoInitDelay?: number;
};
export type TopDialogLoad = (dialogId: string) => Promise<void>;
export type DecoratorOnCreate = (elDialog: HTMLElement) => Promise<void>;
export type MoveDirection = 'next' | 'prev' | 'none';
export type ElTopDialogOpener<El extends HTMLElement = HTMLElement> = El & {
    dataset: {
        toView: string;
    };
};
export type ElTopDialogWrapper = HTMLElement & {
    querySelector: (selectors: '.ui-dialog-content') => ElTopDialog;
};
export type ElTopDialog = HTMLElement & {
    getAttribute: (qualifiedName: 'id') => string;
    closest: (el: '.ui-dialog') => ElTopDialogWrapper;
    dataset: {
        /**
         * Имя активной страницы
         */
        viewPageActive: string;
        /**
         * Аргументы активной страницы
         *
         * Для передачи параметров диалогового окна по прямой ссылке, в отличие от props не реактивны и используются только в `@open`
         *
         * Список любых значений, разделенных двоеточием
         *
         * @see import('../dialog/types').Emits - Доступно в `@open`
         */
        args: string;
    };
};
export type ElTopDialogBody = HTMLElement;
export type ElTopDialogPage = HTMLElement & {
    dataset: {
        'view-page': string;
        order?: string;
    };
};
export type ElTopDialogModalLayer = HTMLElement;
