import type { FieldItem } from '../types';
import type { CnAiBizRequestConfig } from '../../../../../../../cn-ai-table/types';
export interface UsePreviewOptions {
    /** 表格 ID */
    tableId: string;
    /** 表格数据 */
    rawData: any[];
    /** 可用字段列表 */
    fields: FieldItem[];
    /** 是否为编辑模式 */
    isEditMode: boolean;
    /** 全量列定义（dataModel.columnDefinitions），用于格式化提取 */
    allColumns?: any[];
    /** 处理后的列定义映射（dataModel.processedColumnMap） */
    processedColumnMap?: Map<string, any>;
    /** 业务侧 AI 请求 URL 配置（仅 AI 字段能力） */
    bizRequestConfig?: Pick<CnAiBizRequestConfig, 'aiColumn'>;
}
export interface UsePreviewReturn {
    /** 预览是否加载中 */
    previewLoading: boolean;
    /** 预览结果 */
    previewResult: string;
    /** 预览错误信息 */
    previewError: string;
    /** 预览是否被中断（内容修改后需重新生成） */
    previewInterrupted: boolean;
    /** 是否从未预览过（编辑模式初始状态） */
    neverPreviewed: boolean;
    /** 执行预览 */
    handlePreview: (promptValue: string) => Promise<void>;
    /** 处理 prompt 变化（用于判断是否需要设置中断状态） */
    handlePromptChange: (oldValue: string, newValue: string) => void;
    /** 停止预览轮询 */
    stopPreviewPolling: (interrupted?: boolean) => void;
    /** 重置预览状态 */
    resetPreviewState: () => void;
}
/**
 * 预览相关逻辑 Hook
 */
export declare function usePreview({ tableId, rawData, fields, isEditMode, allColumns, processedColumnMap, bizRequestConfig, }: UsePreviewOptions): UsePreviewReturn;
