import { ActivePanelData } from '../../../domain/active/active-types';
import { AttachFieldTarget } from '../../../domain/field/attach-field';
export type PanelBreadcrumbItem = {
    key: string;
    value: string;
};
export type PanelTitle = string | PanelBreadcrumbItem[];
export type PanelTitleContext = {
    active: ActivePanelData | null;
    attachFieldTarget: AttachFieldTarget | null;
};
export interface PanelSchema {
    /** schema 唯一 key */
    key: PanelSchemaKey;
    /** 面板标题 */
    title: PanelTitle;
    /** 按当前上下文解析标题（如引用字段面包屑） */
    resolveTitle?: (ctx: PanelTitleContext) => PanelTitle;
    /** 实际渲染组件 */
    render: any;
}
export type PanelSchemaKey = string;
export type PanelSchemaMap = Partial<Record<PanelSchemaKey, PanelSchema>>;
