/**
 * AI 任务相关工具函数
 * @description 统一处理 AI 字段生成任务的目标行获取逻辑
 */
import type { SaveMode } from '../types';
/**
 * 自定义行项目类型（与 normal-table-view 中的 CustomRowItem 保持一致）
 */
interface CustomRowItem {
    type: 'data' | 'custom';
    row?: any;
    data?: any;
}
/**
 * 获取目标行的配置选项
 */
export interface GetTargetRowsOptions {
    /** 保存模式 */
    mode: SaveMode;
    /**
     * dataModel 实例
     * 如果提供，会使用 dataModel.getDisplayOrderData(viewId) 获取显示顺序数据
     */
    dataModel?: any;
    /** 视图ID（与 dataModel 配合使用） */
    viewId?: string;
    /** 视图数据（筛选后的数据，作为回退） */
    viewData?: any[];
    /**
     * 自定义行列表（分组视图时传入，已按显示顺序排列）
     * 如果提供，优先使用 customRows 中的数据行
     */
    customRows?: CustomRowItem[];
    /**
     * TanStack Table 实例（可选）
     * 如果提供且没有 customRows，会从 table 获取显示顺序的行
     */
    table?: any;
}
/**
 * 获取 AI 任务的目标行
 *
 * @description
 * 根据保存模式和数据源获取需要执行 AI 任务的目标行：
 * - config-only: 返回空数组（仅保存配置，不执行任务）
 * - first-5-rows: 返回页面显示的前5行数据
 * - all-rows: 返回所有可见数据行
 *
 * 数据源优先级：
 * 1. dataModel.getDisplayOrderData(viewId)（推荐，自动获取分组/筛选后的显示顺序）
 * 2. customRows（分组视图，已按显示顺序排列）
 * 3. table.getRowModel().rows（从 TanStack Table 获取）
 * 4. viewData（筛选后的数据，作为回退）
 *
 * @param options - 配置选项
 * @returns 目标行数据数组
 */
export declare function getTargetRows(options: GetTargetRowsOptions): any[];
/**
 * 从 TanStack Table 行中递归提取数据行
 *
 * @description
 * 递归遍历表格行，跳过分组行，提取数据行的原始数据
 * 保持页面显示顺序
 *
 * @param tableRows - TanStack Table 的行数组
 * @returns 数据行原始数据数组
 */
export declare function extractDataRowsFromTable(tableRows: any[]): any[];
/**
 * 检查是否需要执行 AI 任务
 *
 * @param mode - 保存模式
 * @returns 是否需要执行任务
 */
export declare function shouldExecuteAiTask(mode: SaveMode): boolean;
export {};
