import { LlmCoreProvider, LlmGenerationConfig, LlmMessage, LlmResponse, LlmStreamProviderResponseChunkEvent, LlmStreamResponse, LlmStreamResponseWithToolCalls } from "../providers";
export interface TestProviderConfig {
    name?: string;
    defaultResponse?: string;
    defaultStreamResponse?: string[];
    simulateDelay?: number;
    failOnModels?: string[];
    /** If set, will simulate an error after this many chunks */
    errorAfterChunks?: number;
    /** The error message to use when simulating errors */
    errorMessage?: string;
}
export declare class TestProvider implements LlmCoreProvider {
    readonly name: string;
    private defaultResponse;
    private defaultStreamResponse;
    private simulateDelay;
    private failOnModels;
    private errorAfterChunks?;
    private errorMessage;
    constructor(config?: TestProviderConfig);
    private delay;
    generateResponse(model: string, messages: LlmMessage[], config?: LlmGenerationConfig): Promise<LlmResponse>;
    generateResponseStream(model: string, messages: LlmMessage[], config?: LlmGenerationConfig): AsyncGenerator<LlmStreamProviderResponseChunkEvent | LlmStreamResponse | LlmStreamResponseWithToolCalls, void, unknown>;
    getAvailableModels(): Promise<string[]>;
    createEmbedding(model: string, text: string, abortSignal?: AbortSignal): Promise<number[]>;
}
