import type { PromptResult, StreamChunk } from "smoltalk";
import type { Result } from "smoltalk";
import type { EmbedConfig, EmbedResult, LLMClient, PromptConfig } from "./llmClient.js";
export declare class SimpleOpenAIClient implements LLMClient {
    private apiKey;
    private defaultModel;
    constructor(opts?: {
        apiKey?: string;
        model?: string;
    });
    text(config: PromptConfig): Promise<Result<PromptResult>>;
    textStream(config: PromptConfig): AsyncGenerator<StreamChunk>;
    embed(input: string | string[], config?: Partial<EmbedConfig>): Promise<Result<EmbedResult>>;
    private buildRequestBody;
    private extractToolCalls;
    private extractUsage;
}
