import { TokenUsage } from "../types";
/**
 * Registro de una ejecución de consulta
 */
export interface QueryRecord {
    id: string;
    timestamp: Date;
    naturalQuery: string;
    generatedSQL: string;
    confidence?: number;
    success: boolean;
    executionTime: number;
    fromCache: boolean;
    tokenUsage?: TokenUsage;
    error?: string;
}
/**
 * Administrador de historial de consultas en memoria.
 * Almacena un registro rotativo de ejecuciones para depuración y análisis.
 */
export declare class QueryHistory {
    private history;
    private maxSize;
    constructor(maxSize?: number);
    /**
     * Agrega un registro de consulta al historial
     */
    addRecord(record: QueryRecord): void;
    /**
     * Obtiene el historial de consultas, opcionalmente limitado a las últimas N entradas
     */
    getHistory(limit?: number): QueryRecord[];
    /**
     * Obtiene la última consulta ejecutada
     */
    getLastQuery(): QueryRecord | null;
    /**
     * Obtiene estadísticas sobre la ejecución de consultas
     */
    getStats(): {
        totalQueries: number;
        successfulQueries: number;
        failedQueries: number;
        averageExecutionTime: number;
        cacheHitRate: number;
        totalTokensUsed: number;
    };
    /**
     * Limpia el historial completo
     */
    clearHistory(): void;
    /**
     * Exporta el historial como cadena JSON
     */
    exportHistory(): string;
}
