import * as React from 'react';
import type { FormilySchema } from '../../cn-sender/view/types/formily-schema';
import type { TableColumnDefinition } from './table-column-definition';
import { ISelectedCellInfo } from './selected-cell-info';
import type { CnAiBizRequestConfig } from '../../cn-ai-table/types';
export interface CnAiAgentProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'id'> {
    /**
     * 选中的单元格信息。
     * 不传时由组件内订阅 CnAiTable 的 CELL_SELECT / ROW_SELECT / COLUMN_SELECT 等事件自动维护。
     */
    selectedCell?: ISelectedCellInfo | null;
    /**
     * 清除选中单元格的回调；与内部清除并行时会先通知表格 AGENT_CLEAR_SELECTION。
     */
    onClearSelectedCell?: () => void;
    /**
     * 字段 Schema（用于 / 插入字段功能）
     */
    schema?: FormilySchema;
    /**
     * 用户标识（如工号），用于助理请求与显隐按用户隔离。
     * 不传时依次尝试页面 `__PAGE_INFO__.user.aliWorkNo`、网关 `window._GATEWAY_PF.workerNo`。
     */
    userId?: string;
    /**
     * 表格/页面唯一标识，会随 submitPrompt 一并提交；未传时按空字符串提交（如 Story 演示）
     */
    id?: string;
    /**
     * 格式化后的完整表格数据（AI 可理解格式）。
     * 不传时使用内部 useFormattedTableData（依赖 TableView 写入的 window getter 与 TABLE_DATA_UPDATE）。
     */
    formattedTableData?: Array<Record<string, string>>;
    /**
     * 表格列定义。
     * 不传时使用内部 useColumnDefinitions。
     */
    columnDefinitions?: TableColumnDefinition[];
    /**
     * AI 助理面板是否可见。
     * - **不传**：非受控；在传了 `id` 且开启持久化时，内部按 `id` + 解析出的用户 id 读写 localStorage，并通过 `onAgentVisibleChange` 同步父级布局。
     * - **传入**：受控，由父组件持有 state。
     */
    agentVisible?: boolean;
    /**
     * 显隐变化时回调（如与侧栏/栅格布局联动）。
     * 非受控时也会在挂载及每次内部显隐变化时调用，便于父组件同步 className。
     */
    onAgentVisibleChange?: (visible: boolean) => void;
    /** 非受控且无本地记录时的默认显隐。 */
    defaultAgentVisible?: boolean;
    /** 是否持久化显隐；受控时默认关闭。 */
    persistAgentVisibility?: boolean;
    /**
     * 业务侧 AI 请求 URL 配置（仅助理能力）
     */
    bizRequestConfig?: CnAiBizRequestConfig;
}
