/**
 * 工具调用解析失败日志记录器
 * 将工具调用解析失败的详细信息记录到数据库
 * Project Owner: Jason Zhang
 */
export interface ToolParsingFailure {
    timestamp: string;
    requestId: string;
    provider: string;
    model: string;
    endpoint: string;
    failureType: 'parsing_error' | 'format_mismatch' | 'missing_tool_calls' | 'invalid_json' | 'text_instead_of_tools';
    originalResponse: any;
    expectedFormat: 'openai' | 'anthropic' | 'custom';
    errorMessage: string;
    responseAnalysis: {
        hasToolCalls: boolean;
        hasContent: boolean;
        contentLength: number;
        contentPreview: string;
        finishReason: string;
        toolCallPatterns?: string[];
    };
    debugInfo: {
        requestTools: any[];
        responseStructure: any;
        parsingAttempts: string[];
    };
}
export declare class ToolParsingFailureLogger {
    private dbPath;
    private failures;
    private maxRecords;
    constructor(dbPath?: string);
    /**
     * 记录工具调用解析失败
     */
    logFailure(requestId: string, provider: string, model: string, endpoint: string, originalResponse: any, errorDetails: {
        failureType: ToolParsingFailure['failureType'];
        errorMessage: string;
        expectedFormat: ToolParsingFailure['expectedFormat'];
        requestTools?: any[];
        parsingAttempts?: string[];
    }): Promise<void>;
    /**
     * 分析响应内容
     */
    private analyzeResponse;
    /**
     * 检测文本内容中的工具调用模式
     */
    private detectToolCallPatterns;
    /**
     * 分析响应结构
     */
    private analyzeStructure;
    /**
     * 清理响应内容（移除敏感信息）
     */
    private sanitizeResponse;
    /**
     * 加载现有的失败记录
     */
    private loadExistingFailures;
    /**
     * 安全的日志记录 - 如果logger未初始化则降级使用console
     */
    private safeLog;
    /**
     * 保存失败记录到文件
     */
    private saveFailures;
    /**
     * 获取失败统计信息
     */
    getStats(): {
        totalFailures: number;
        recentFailures: number;
        failuresByType: Record<string, number>;
        failuresByProvider: Record<string, number>;
        topFailedModels: Array<{
            model: string;
            count: number;
        }>;
    };
    /**
     * 获取特定provider的失败记录
     */
    getFailuresForProvider(provider: string, limit?: number): ToolParsingFailure[];
    /**
     * 获取最近的失败记录
     */
    getRecentFailures(hours?: number, limit?: number): ToolParsingFailure[];
    /**
     * 清理旧记录
     */
    cleanup(olderThanDays?: number): void;
}
/**
 * 获取全局单例实例 - 延迟初始化避免过早调用logger
 */
export declare function getToolParsingFailureLogger(): ToolParsingFailureLogger;
export declare const toolParsingFailureLogger: {
    readonly instance: ToolParsingFailureLogger;
};
export default ToolParsingFailureLogger;
//# sourceMappingURL=tool-parsing-failure-logger.d.ts.map