/**
 * Pipeline Coordinator - Clean Architecture
 * 统一流水线协调器，确保清晰的层次分离
 * Project owner: Jason Zhang
 *
 * Architecture Principles:
 * Input → Preprocessing → Transformer → Provider → Third-party API
 *
 * 职责:
 * 1. 协调各层之间的数据流
 * 2. 确保单向依赖
 * 3. 集中化转换和修复逻辑
 */
import { BaseRequest, BaseResponse } from '../types';
export interface PipelineContext {
    requestId: string;
    provider: string;
    model: string;
    stage: 'input' | 'transform' | 'provider' | 'response';
    timestamp: number;
}
/**
 * 流水线协调器
 * 管理Input → Preprocessing → Transformer → Provider的数据流
 */
export declare class PipelineCoordinator {
    private geminiTransformer;
    private patchPreprocessor;
    constructor(port?: number);
    /**
     * 输入阶段处理 - Input Layer
     * 统一的请求预处理入口
     */
    processInput(request: BaseRequest, provider: string, model: string): Promise<BaseRequest>;
    /**
     * 转换阶段处理 - Transformer Layer
     * 格式转换，不包含服务特定逻辑
     */
    processTransform(request: BaseRequest, targetFormat: 'gemini' | 'openai' | 'anthropic'): Promise<{
        transformedData: any;
        metadata: any;
    }>;
    /**
     * Provider准备阶段 - Provider Layer Input
     * 将转换后的数据打包成Provider可以直接使用的格式
     */
    prepareForProvider(transformedData: any, metadata: any, originalModel: string): Promise<BaseRequest>;
    /**
     * 响应处理阶段 - Response Layer
     * 处理Provider返回的原始响应，转换回统一格式
     */
    processResponse(providerResponse: BaseResponse, originalFormat: 'gemini' | 'openai' | 'anthropic', originalModel: string): Promise<BaseResponse>;
    /**
     * 生成唯一请求ID
     */
    private generateRequestId;
    /**
     * 获取性能统计
     */
    getStats(): {
        patchPreprocessorStats: {
            totalProcessed: number;
            totalDuration: number;
            byStage: {
                input: {
                    count: number;
                    duration: number;
                };
                response: {
                    count: number;
                    duration: number;
                };
                streaming: {
                    count: number;
                    duration: number;
                };
            };
        };
    };
}
export declare function getPipelineCoordinator(port?: number): PipelineCoordinator;
export declare function createPipelineCoordinator(port?: number): PipelineCoordinator;
//# sourceMappingURL=pipeline-coordinator.d.ts.map