import { AiTableColumn, TableTaskItem, CreateOrModifyAiColumnParams, SingleGridTaskSubmitRequest } from '../services/types/ai-column';
import type { CnAiBizRequestConfig } from '../../../cn-ai-table/types';
export interface UseAiColumnsOptions {
    /** 表格ID */
    tableId: string;
    /** 为 false 时不发起任何 AI 列/任务相关请求（默认 true） */
    enabled?: boolean;
    /** AI列加载完成回调 */
    onAiColumnsLoaded?: (columns: AiTableColumn[]) => void;
    /** 已完成任务回调（用于回显到表格单元格） */
    onFinishedTasksUpdate?: (finishedTasks: TableTaskItem[]) => void;
    /** 业务侧 AI 请求 URL 配置（AI 字段 + 魔方直连 context） */
    bizRequestConfig?: Pick<CnAiBizRequestConfig, 'aiColumn' | 'cubePlatform'>;
    /** 源码直连魔方开放平台：与视图共用行主键 */
    cubePlatformUserConfigRowIdHint?: string;
    onCubePlatformUserConfigRowId?: (rowId: string) => void;
}
export interface UseAiColumnsReturn {
    aiColumns: AiTableColumn[];
    loadingAiColumns: boolean;
    savingAiColumn: boolean;
    finishedTasks: TableTaskItem[];
    /** 运行中的任务列表 */
    runningTasks: TableTaskItem[];
    pollingTasks: boolean;
    /** 是否正在执行单列任务 */
    executingColumnTask: boolean;
    loadAiColumns: () => Promise<AiTableColumn[]>;
    saveAiColumn: (params: CreateOrModifyAiColumnParams) => Promise<boolean>;
    queryAndPollTableTasks: () => Promise<void>;
    /** 提交单列任务并轮询（用于新建AI列时执行任务） */
    submitColumnTasks: (columnCode: string, taskRequests: SingleGridTaskSubmitRequest[]) => Promise<void>;
    stopPolling: () => void;
}
/**
 * AI列管理 Hook
 *
 * 功能：
 * 1. 页面加载时自动查询 AI 列和全表任务
 * 2. 回显已完成任务的结果到表格
 * 3. 使用统一轮询池管理所有运行中的任务
 * 4. 提供保存 AI 列的方法
 */
export declare function useAiColumns(options: UseAiColumnsOptions): UseAiColumnsReturn;
