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