import type OpenAI from "openai";
import type { MaximLogger } from "../logger";
type ChatCompletionCreateParams = OpenAI.Chat.Completions.ChatCompletionCreateParams;
type ChatCompletionCreateParamsStreaming = OpenAI.Chat.Completions.ChatCompletionCreateParamsStreaming;
type ChatCompletionCreateParamsNonStreaming = OpenAI.Chat.Completions.ChatCompletionCreateParamsNonStreaming;
type ChatCompletion = OpenAI.Chat.Completions.ChatCompletion;
type ChatCompletionChunk = OpenAI.Chat.Completions.ChatCompletionChunk;
/**
 * Options for the MaximOpenAIChatCompletions create method.
 */
export type MaximChatCompletionOptions = {
    /**
     * Custom trace ID for this completion.
     * If not provided, a new trace will be created.
     */
    traceId?: string;
    /**
     * Name for the generation.
     */
    generationName?: string;
};
/**
 * Wrapped OpenAI chat completions that automatically logs to Maxim.
 */
export declare class MaximOpenAIChatCompletions {
    private client;
    private logger;
    constructor(client: OpenAI, logger: MaximLogger);
    /**
     * Creates a chat completion with automatic Maxim logging.
     *
     * @example
     * ```typescript
     * // Non-streaming
     * const response = await client.chat.completions.create({
     *   model: 'gpt-4',
     *   messages: [{ role: 'user', content: 'Hello!' }]
     * });
     *
     * // Streaming
     * const stream = await client.chat.completions.create({
     *   model: 'gpt-4',
     *   messages: [{ role: 'user', content: 'Hello!' }],
     *   stream: true
     * });
     * for await (const chunk of stream) {
     *   process.stdout.write(chunk.choices[0]?.delta?.content || '');
     * }
     * ```
     */
    create(params: ChatCompletionCreateParamsStreaming, options?: OpenAI.RequestOptions): Promise<AsyncIterable<ChatCompletionChunk>>;
    create(params: ChatCompletionCreateParamsNonStreaming, options?: OpenAI.RequestOptions): Promise<ChatCompletion>;
    create(params: ChatCompletionCreateParams, options?: OpenAI.RequestOptions): Promise<ChatCompletion | AsyncIterable<ChatCompletionChunk>>;
}
export {};
