import { Provider, ChatRequest, ChatResponse, ModelInfo, ChatChunk, EmbeddingRequest, EmbeddingResponse, TranscriptionRequest, TranscriptionResponse, ModerationRequest, ModerationResponse } from "../Provider.js";
import { BaseProvider } from "../BaseProvider.js";
export interface MistralProviderOptions {
    apiKey: string;
    baseUrl?: string;
}
export declare class MistralProvider extends BaseProvider implements Provider {
    private readonly options;
    private readonly baseUrl;
    private readonly chatHandler;
    private readonly streamingHandler;
    private readonly modelsHandler;
    private readonly embeddingHandler;
    private readonly transcriptionHandler;
    private readonly moderationHandler;
    capabilities: {
        supportsVision: (model: string) => boolean;
        supportsTools: (model: string) => boolean;
        supportsStructuredOutput: (model: string) => boolean;
        supportsEmbeddings: (model: string) => boolean;
        supportsImageGeneration: (model: string) => boolean;
        supportsTranscription: (model: string) => boolean;
        supportsModeration: (model: string) => boolean;
        supportsReasoning: (model: string) => boolean;
        supportsDeveloperRole: (_model: string) => boolean;
        getContextWindow: (model: string) => number | null;
    };
    constructor(options: MistralProviderOptions);
    apiBase(): string;
    headers(): Record<string, string>;
    protected providerName(): string;
    defaultModel(feature?: string): string;
    chat(request: ChatRequest): Promise<ChatResponse>;
    stream(request: ChatRequest): AsyncGenerator<ChatChunk>;
    listModels(): Promise<ModelInfo[]>;
    embed(request: EmbeddingRequest): Promise<EmbeddingResponse>;
    transcribe(request: TranscriptionRequest): Promise<TranscriptionResponse>;
    moderate(request: ModerationRequest): Promise<ModerationResponse>;
}
//# sourceMappingURL=MistralProvider.d.ts.map