import { IPopupInstance, IPopupManager, IPopupWidget, RuntimeContext, RuntimeViewAction } from '@oinone/kunlun-engine';
import { ViewMode, ViewType } from '@oinone/kunlun-meta';
import { ReturnPromise } from '@oinone/kunlun-shared';
import { VueWidget } from '@oinone/kunlun-vue-widget';
import { PopupDslDefinition } from '../../action';
import { MetadataViewWidget } from '../../basic';
import { PopupScene } from '../../typing';
export interface PopupInfo {
    key: string;
    instance: IPopupInstance;
    popupDslDefinition?: PopupDslDefinition | null;
    runtimeContext?: RuntimeContext;
    metadataWidget?: MetadataViewWidget;
}
export declare abstract class PopupContainerWidget extends VueWidget {
    protected popupInfos: PopupInfo[];
    protected abstract getPopupScene(): PopupScene | string;
    protected abstract createPopupWidget(popupInfo: PopupInfo): ReturnPromise<IPopupWidget | undefined>;
    protected createInitialPopupWidget(widget: IPopupWidget): ReturnPromise<IPopupWidget | undefined>;
    initialize(props: any): this;
    protected get popupScene(): string;
    protected generatorPopupWidget(popupInfo: PopupInfo): Promise<void>;
    protected initPopupDslDefinition(popupInfo: PopupInfo): Promise<PopupDslDefinition | undefined>;
    protected initPopupRuntimeContext(popupInfo: PopupInfo): RuntimeContext;
    protected computeViewMode(viewType: ViewType, action: RuntimeViewAction): ViewMode;
    protected initPopupMetadataWidget(runtimeContext: RuntimeContext): MetadataViewWidget;
    protected onOpen: (manager: IPopupManager, instance: IPopupInstance) => Promise<void>;
    protected onDispose: (manager: IPopupManager, instance: IPopupInstance) => void;
    protected findPopupInfo(instance: IPopupInstance): {
        popupInfo: PopupInfo;
        index: number;
    } | undefined;
    protected $$mounted(): void;
    protected $$unmounted(): void;
}
