import { Ref } from 'vue';
import { AsyncTopDialogComponentLoader, TopDialogComponent } from './types';
import { TopDialogHandle } from './dialogHandle';
/**
 * Объект для работы с асинхронным диалоговым окном
 *
 * Является прослойкой для доступа к TopDialogHandle
 */
export declare class AsyncTopDialogHandle<T extends TopDialogComponent> {
    /**
     * Функция, определяющая компонент TopDialogComponent
     */
    readonly resolve: AsyncTopDialogComponentLoader<T>;
    /**
     * Реактивная Сссылка на объект worker,
     *
     * Ссылка не будет указывать на объект, если диалоговое окно еще не загружено
     */
    readonly worker: Ref<TopDialogHandle<T> | null>;
    constructor(resolve: AsyncTopDialogComponentLoader<T>);
    /**
     * Получить доступ к TopDialogHandle
     */
    get(): Promise<TopDialogHandle<T>>;
    /**
     * Открыть диалоговое окно
     */
    open(...args: Parameters<TopDialogHandle<T>['open']>): Promise<void>;
    /**
     * Открыть диалоговое окно как ссылку, для хеш-навигации
     *
     * Только общедоступные диалоговые окна, расположенные в @/dialogs
     */
    openAsLink(...args: Parameters<TopDialogHandle<T>['open']>): Promise<void>;
    /**
     * Закрыть диалоговое окно
     *
     * Не меняет состояние компонента диалогового окна
     */
    close(...args: Parameters<TopDialogHandle<T>['close']>): Promise<void>;
    /**
     * Размонтировать виджет диалогового окна
     */
    destroy(...args: Parameters<TopDialogHandle<T>['close']>): Promise<void>;
    /**
     * Установить props
     *
     * Полностью сбрасывается состояние props
     */
    setProps(...args: Parameters<TopDialogHandle<T>['setProps']>): Promise<void>;
}
