/**
 * OpenAI Embedder Implementation
 *
 * Optimized embedder using OpenAI's text embedding models
 * with performance enhancements for production use
 */
import { BaseEmbedder, BaseEmbedderOptions } from './BaseEmbedder.js';
import OpenAI from 'openai';
/**
 * OpenAI Embedder Options
 */
export interface OpenAIEmbedderOptions extends BaseEmbedderOptions {
    /**
     * OpenAI API key
     */
    apiKey?: string;
    /**
     * OpenAI Organization ID
     */
    organization?: string;
    /**
     * OpenAI API URL
     * @default 'https://api.openai.com/v1/embeddings'
     */
    apiUrl?: string;
    /**
     * Timeout for API requests in milliseconds
     * @default 30000 (30 seconds)
     */
    timeout?: number;
}
/**
 * OpenAI Embedder Implementation
 *
 * Uses OpenAI's powerful embedding models with optimized performance
 */
export declare class OpenAIEmbedder extends BaseEmbedder<OpenAIEmbedderOptions> {
    /**
     * API key for OpenAI
     */
    private apiKey;
    /**
     * API URL
     */
    private apiUrl;
    /**
     * OpenAI Organization ID
     */
    private organization?;
    /**
     * Request timeout
     */
    private timeout;
    /**
     * OpenAI client
     */
    protected client: OpenAI;
    /**
     * Constructor for OpenAIEmbedder
     */
    constructor(options?: OpenAIEmbedderOptions);
    /**
     * Embed text using OpenAI's embedding API
     * @param text Text to embed
     * @returns Promise resolving to Float32Array of embeddings
     */
    embed(text: string): Promise<Float32Array>;
    /**
     * Embed batch of texts using OpenAI's embedding API
     * @param texts Texts to embed
     * @returns Promise resolving to Float32Array[] of embeddings
     */
    embedBatch(texts: string[]): Promise<Float32Array[]>;
    protected executeWithRetry<T>(operation: () => Promise<T>, maxRetries?: number, initialBackoff?: number, maxBackoff?: number): Promise<T>;
    protected executeBatchWithRetry<T>(operation: () => Promise<T>, maxRetries?: number, initialBackoff?: number, maxBackoff?: number): Promise<T>;
}
//# sourceMappingURL=OpenAIEmbedder.d.ts.map