/**
 * Result Export Service
 * Handles exporting SQL query results to CSV and JSON formats
 */
import { SqlQueryResult } from '../models/sessionSchema';
import type { Finding } from '../agent/types';
import type { AnalysisPlanV3, AnalysisNote, Hypothesis, UncertaintyFlag } from '../agentv3/types';
export interface ExportOptions {
    format: 'csv' | 'json';
    includeHeaders?: boolean;
    delimiter?: string;
    nullValue?: string;
    prettyPrint?: boolean;
}
export interface ExportResult {
    data: string;
    mimeType: string;
    filename: string;
    rowCount: number;
}
export declare class ResultExportService {
    private static instance;
    private constructor();
    static getInstance(): ResultExportService;
    /**
     * Export SQL result to CSV or JSON
     */
    exportResult(result: SqlQueryResult, options?: ExportOptions): ExportResult;
    /**
     * Export to CSV format
     */
    private exportToCSV;
    /**
     * Escape CSV fields according to RFC 4180
     */
    private escapeCSVFields;
    /**
     * Export to JSON format
     */
    private exportToJSON;
    /**
     * Export multiple results (for session export)
     */
    exportSession(results: Array<{
        name: string;
        result: SqlQueryResult;
    }>, options?: ExportOptions): ExportResult;
    /**
     * Export agentv3 analysis session data (findings, plan, hypotheses, notes, conclusion)
     */
    exportAnalysisSession(data: AnalysisSessionExport, options?: ExportOptions): ExportResult;
}
export interface AnalysisSessionExport {
    sessionId: string;
    traceId?: string;
    sceneType?: string;
    turnCount?: number;
    conclusion?: string;
    findings?: Finding[];
    plan?: AnalysisPlanV3;
    hypotheses?: Hypothesis[];
    notes?: AnalysisNote[];
    uncertaintyFlags?: UncertaintyFlag[];
}
export default ResultExportService;
//# sourceMappingURL=resultExportService.d.ts.map