import { AtomName, type DataExtractionCtx, type DataExtractionOptions, type BaseOptions } from '../../types/atom';
import { BaseAtom } from '../base';
import type { LLMMessage } from '../../types/llm';
import type { DataTable, FieldInfo } from '../../types';
export declare class DataExtractionAtom extends BaseAtom<DataExtractionCtx, DataExtractionOptions> {
    name: AtomName;
    isLLMAtom: boolean;
    replaceData: {
        template: string;
        replace: string;
    }[];
    isTextReplaceStatus: boolean[];
    constructor(context: DataExtractionCtx, option: BaseOptions);
    buildDefaultContext(context: DataExtractionCtx): DataExtractionCtx;
    buildDefaultOptions(): DataExtractionOptions;
    shouldRunByContextUpdate(context: DataExtractionCtx): boolean;
    revisedText(text: string): string;
    getLLMMessages(query?: string): LLMMessage[];
    revisedFieldInfo(dataTable: DataTable, fieldInfo: any[]): FieldInfo[];
    parseSubText(text: string, textRange: [string, string]): string;
    private parseMultipleResult;
    parseLLMContent(resJson: any): DataExtractionCtx | {
        thoughts: any;
        datasets: {
            text: string;
            fieldInfo: FieldInfo[];
            summary: string;
            dataTable: DataTable;
            textRange?: [string, string];
        }[];
        text: string;
        fieldInfo?: FieldInfo[];
        dataTable?: DataTable;
        logId?: string;
        id?: string;
        query?: string;
        response?: string;
        error?: string;
        usage?: import("../../types").Usage;
        toolRes?: any;
    };
    protected _runWithOutLLM(): DataExtractionCtx;
}
export declare const registerDataExtractionAtom: () => void;
