/**
 * OpenAI Client Integration Service
 * Provides embeddings and AI capabilities with automatic API key detection
 */
export interface EmbeddingRequest {
    text: string;
    model?: string;
}
export interface EmbeddingResponse {
    embedding: number[];
    tokens: number;
    model: string;
}
export interface OpenAIConfig {
    apiKey?: string;
    organization?: string;
    baseURL?: string;
    timeout?: number;
    maxRetries?: number;
}
export declare class OpenAIClientService {
    private client;
    private keyDetector;
    private config;
    private breaker;
    constructor(config?: OpenAIConfig);
    /**
     * Initialize OpenAI client with automatic API key detection
     */
    initialize(): Promise<boolean>;
    /**
     * Initialize client with a specific API key
     */
    private initializeWithKey;
    /**
     * Get API key value from detected source
     */
    private getKeyValue;
    /**
     * Check if OpenAI client is available
     */
    isAvailable(): boolean;
    /**
     * Generate embeddings for text
     */
    generateEmbedding(request: EmbeddingRequest): Promise<EmbeddingResponse | null>;
    /**
     * Generate embeddings for multiple texts (batch processing)
     */
    generateEmbeddings(texts: string[], model?: string): Promise<EmbeddingResponse[]>;
    /**
     * Test the OpenAI connection
     */
    testConnection(): Promise<boolean>;
    /**
     * Get client usage statistics
     */
    getUsageStats(): {
        clientInitialized: boolean;
        config: {
            timeout: number | undefined;
            maxRetries: number | undefined;
            hasOrganization: boolean;
            hasCustomBaseURL: boolean;
        };
    };
    /**
     * Cleanup resources
     */
    cleanup(): void;
    getCircuitState(): 'closed' | 'open' | 'half-open';
}
export declare const openAIClient: OpenAIClientService;
//# sourceMappingURL=openai-client.d.ts.map