/**
 * 统一的 Finish Reason 日志系统
 * 项目所有者: Jason Zhang
 *
 * 消除重复日志记录，提供端到端的finish_reason跟踪
 */
export interface FinishReasonLogEntry {
    requestId: string;
    stage: 'input' | 'routing' | 'transformation' | 'output' | 'streaming';
    sourceFormat: string;
    targetFormat?: string;
    originalReason?: string;
    mappedReason?: string;
    provider: string;
    model: string;
    timestamp: string;
    context: string;
    metadata?: Record<string, any>;
    errorInfo?: {
        type: 'mapping_failed' | 'unknown_reason' | 'conversion_error';
        message: string;
        shouldRetry?: boolean;
    };
}
declare class UnifiedFinishReasonLogger {
    private logEntries;
    /**
     * 记录finish reason转换的完整过程
     */
    logFinishReasonTransformation(entry: FinishReasonLogEntry): void;
    /**
     * 生成请求的完整finish reason跟踪报告
     */
    generateEndToEndReport(requestId: string): string;
    /**
     * 检查是否存在静默失败
     */
    detectSilentFailures(requestId: string): {
        hasSilentFailure: boolean;
        issues: string[];
    };
    /**
     * 在请求完成时生成最终报告并检查问题
     */
    finalizeRequest(requestId: string): void;
}
export declare const unifiedFinishReasonLogger: UnifiedFinishReasonLogger;
/**
 * 便捷方法：记录输入阶段的finish reason
 */
export declare function logInputFinishReason(requestId: string, originalReason: string | undefined, provider: string, model: string, context: string, metadata?: Record<string, any>): void;
/**
 * 便捷方法：记录转换阶段的finish reason
 */
export declare function logTransformationFinishReason(requestId: string, originalReason: string | undefined, mappedReason: string | undefined, sourceFormat: string, targetFormat: string, provider: string, model: string, context: string, metadata?: Record<string, any>, errorInfo?: FinishReasonLogEntry['errorInfo']): void;
/**
 * 便捷方法：记录输出阶段的finish reason
 */
export declare function logOutputFinishReason(requestId: string, finalReason: string | undefined, provider: string, model: string, context: string, metadata?: Record<string, any>): void;
/**
 * 便捷方法：记录流式处理阶段的finish reason
 */
export declare function logStreamingFinishReason(requestId: string, originalReason: string | undefined, mappedReason: string | undefined, sourceFormat: string, targetFormat: string, provider: string, model: string, context: string, metadata?: Record<string, any>, errorInfo?: FinishReasonLogEntry['errorInfo']): void;
export {};
//# sourceMappingURL=unified-finish-reason-logger.d.ts.map