route-claudecode
Version:
Advanced routing and transformation system for Claude Code outputs to multiple AI providers
64 lines • 1.86 kB
TypeScript
/**
* Gemini API Client - Pure API Client
* Google Gemini API integration via Generative Language API
* Project owner: Jason Zhang
*
* Architecture: Pure API client following transformer architecture
* - Zero hardcoding, zero fallback principles
* - Provider only handles API calls, no format conversion
* - All transformations handled by transformer layer
*/
import { BaseRequest, BaseResponse, ProviderConfig } from '../../types';
export declare class GeminiClient {
private config;
readonly name: string;
readonly type = "gemini";
private apiKey;
private baseUrl;
private enhancedRateLimitManager?;
private apiKeys;
private readonly maxRetries;
private readonly retryDelay;
private readonly requestTimeout;
private genAIClients;
constructor(config: ProviderConfig, providerId?: string);
healthCheck(): Promise<boolean>;
createCompletion(request: BaseRequest): Promise<BaseResponse>;
streamCompletion(request: BaseRequest): AsyncIterable<any>;
/**
* Execute request with retry logic and API key rotation
*/
private executeWithRetry;
/**
* Check if error is retryable
*/
private isRetryableError;
/**
* Wait for retry delay
*/
private waitForRetry;
/**
* 验证请求是否为有效的Gemini格式
*/
private isValidGeminiRequest;
private isTransformableRequest;
/**
* 构建Gemini API请求格式
*/
private buildGeminiApiRequest;
private transformRequestToGemini;
/**
* 构建原Gemini响应格式
*/
private buildGeminiResponse;
private transformGeminiResponseToAnthropic;
/**
* 生成唯一消息ID
*/
private generateMessageId;
/**
* Get API key rotation statistics
*/
getRotationStats(): any;
}
//# sourceMappingURL=client.d.ts.map