declare global {
    interface Window {
        __CN_CUBE_INSTANCE__: {
            __AI_Field_Fun__: {
                setTableView: (params: {
                    tableId: string;
                    viewsData: ViewsData;
                    nodeId: string;
                }) => void;
                getTableView: (params: {
                    tableId: string;
                }) => ViewsData;
            };
        };
    }
}
export interface ColorFillRule {
    field: string;
    operator: string;
    value: string;
    color: string;
    scope: 'cell' | 'row' | 'column';
}
export interface SmartFollowRefreshOptions {
    forcePrompt?: boolean;
    resetConversation?: boolean;
}
export interface SmartFollowState {
    loading: boolean;
    needAttentionRowIds: string[];
    runningTasks: any[];
    conversationId: string | null;
    refresh?: (options?: SmartFollowRefreshOptions) => void;
}
export interface RecordOperationRequestConfig {
    getOne?: {
        requestConfig: any;
    };
    create?: {
        requestConfig: any;
    };
    update?: {
        requestConfig: any;
    };
}
export interface ColumnDefinitions {
    dataIndex: string;
    title: string;
    format?: string;
    [key: string]: any;
}
export interface AiColumnConfig {
    /** 字段名称 */
    fieldName: string;
    /** AI任务类型：信息提取、格式转化等 */
    aiTaskType: string;
    /** 目标信息描述（prompt模板） */
    targetInfo: string;
    /** 内容（插入的字段） */
    content: string;
    /** 模型选择 */
    model: string;
    /** 自动更新 */
    autoUpdate: boolean;
    /** 允许引用字段为空 */
    allowEmptyField: boolean;
    /** 字段描述 */
    fieldDescription?: string;
    /** 列code */
    columnCode: string;
    /** 字段类型 */
    fieldType?: string;
}
export interface FormulaColumnConfig {
    /** 字段名称 */
    fieldName: string;
    /** 原始公式表达式（用于回显编辑） */
    expression: string;
    /** 引用的字段 dataIndex 列表 */
    referencedFields: string[];
    /** 列code */
    columnCode: string;
    /** 字段类型 */
    fieldType: 'formula';
}
export interface LookupColumnConfig {
    /** 字段名称 */
    fieldName: string;
    /** 引用子表标识 */
    sourceTableId: string;
    /** 引用子表名称 */
    sourceTableName?: string;
    /** 子表字段标识 */
    targetFieldCode: string;
    /** 子表字段名称 */
    targetFieldName?: string;
    /** 列 code */
    columnCode: string;
    /** 字段类型 */
    fieldType?: 'lookup';
    /** 是否支持在筛选中搜索 */
    canSearch?: boolean;
    /** 子表字段模型 DSL */
    model?: {
        type?: string;
        props?: Record<string, unknown>;
        [key: string]: unknown;
    };
    /** 字段描述 */
    description?: string;
}
export interface ViewConfig {
    id: string;
    name: string;
    type: string;
    columnOrder?: string[];
    hiddenColumns?: string[];
    aiColumns?: string[];
    filter: object[];
    sort: object[];
    group: object[];
    aggregate: object;
    custom: object;
    colorFill: ColorFillRule[];
    aiConfig?: Record<string, AiColumnConfig>;
    formulaConfig?: Record<string, FormulaColumnConfig>;
    creator: string;
    createTime: number;
}
/** 表级自定义字段配置（AI 字段、公式字段等） */
export interface CustomFieldsConfig {
    /** AI 字段配置，key 为 columnCode */
    aiConfig: Record<string, AiColumnConfig>;
    /** 该表启用的所有 AI 列 columnCode 列表 */
    aiColumns: string[];
    /** 公式字段配置，key 为 columnCode */
    formulaConfig: Record<string, FormulaColumnConfig>;
    /** 引用字段配置，key 为 columnCode */
    lookupConfig: Record<string, LookupColumnConfig>;
}
export interface ViewsData {
    views: Record<string, ViewConfig>;
    viewOrder: string[];
    customFields?: CustomFieldsConfig;
}
