import { DslDefinition } from '@oinone/kunlun-dsl';
import { MajorConfig, RuntimeViewAction, ViewActionQueryParameter } from '@oinone/kunlun-engine';
import { CallChaining } from '@oinone/kunlun-shared';
import { VNode } from 'vue';
import { MetadataViewWidget } from '../basic';
import { TeleportWidget } from '../components/teleport';
import { MultiTabsContainerWidget } from './multi-tabs';
/**
 * <h3>元数据主视图</h3>
 * <p>
 * 该视图组件提供mask渲染以及首个元数据上下文初始化的处理逻辑
 * metadataHandle、rootHandle、parentHandle将从这里向下提供一个根节点，是整个视图渲染的起点
 * </p>
 * <p>
 * 该视图组件并不会提供除了渲染挂载以外的其他数据，比如model、module等信息将从MainViewWidget向下提供，这样处理将更能凸显MainViewWidget组件的通用性
 * </p>
 */
export declare class DefaultMetadataMainViewWidget extends MetadataViewWidget {
    private matchedSub;
    private $systemMajorConfig;
    protected pairwiseRoutePage: {
        oldPage: ViewActionQueryParameter | undefined;
        newPage: ViewActionQueryParameter | undefined;
    };
    protected reloadMaskCallChaining: CallChaining<void>;
    protected reloadMainViewCallChaining: CallChaining<void>;
    protected maskTemplate: DslDefinition | undefined;
    protected loading: boolean;
    protected currentRuntimeViewAction: RuntimeViewAction | undefined;
    protected mainViewLoading: boolean;
    protected translateToolBox: VNode | undefined;
    protected setMainViewLoading(loading: boolean): void;
    protected multiTabsTeleportWidget: TeleportWidget | undefined;
    protected multiTabsContainerWidget: MultiTabsContainerWidget | undefined;
    initialize(props: any): this;
    private arePropertiesEqual;
    /**
     * 监听路由变化
     *  1: 渲染mask
     *  2: 初始化上下文P
     */
    private watchRoute;
    protected reloadPage(oldPage: ViewActionQueryParameter | undefined, newPage: ViewActionQueryParameter): Promise<void>;
    protected fetchRuntimeViewAction(model: string, action: string | undefined, path: string | undefined): Promise<RuntimeViewAction>;
    /**
     * 初始化运行时上下文
     * @param viewAction 跳转动作
     * @protected
     */
    protected initRuntimeContext(viewAction: RuntimeViewAction): {
        isInit: boolean;
        isRefresh: boolean;
    };
    /**
     * 渲染前
     * @param viewAction 跳转动作
     * @param oldPage 旧url参数
     * @param newPage 新url参数
     * @protected
     */
    protected beforeRender(viewAction: RuntimeViewAction, oldPage: ViewActionQueryParameter | undefined, newPage: ViewActionQueryParameter): Promise<void>;
    /**
     * 渲染mask
     * @param viewAction 跳转动作
     * @param oldPage 旧url参数
     * @param newPage 新url参数
     */
    renderMask(viewAction: RuntimeViewAction, oldPage: ViewActionQueryParameter | undefined, newPage: ViewActionQueryParameter): Promise<void>;
    /**
     * 渲染MainView
     * @param viewAction 跳转动作
     * @param oldPage 旧url参数
     * @param newPage 新url参数
     * @protected
     */
    protected renderMainView(oldPage: ViewActionQueryParameter | undefined, newPage: ViewActionQueryParameter): Promise<void>;
    protected createMultiTabsContainerWidget(): void;
    protected watchMultiTabTheme(): void;
    protected multiTabThemeDistinct(pre: MajorConfig, next: MajorConfig): boolean;
    protected $$mounted(): Promise<void>;
    protected $$unmounted(): void;
}
