import { OnModuleInit } from '@nestjs/common';
import type { ModelProvider, ProviderRequest, ProviderResponse, ProviderStreamChunk } from './provider.types';
import { MockProvider } from './mock.provider';
import { AnthropicProvider } from './anthropic.provider';
import { OpenAIProvider } from './openai.provider';
import { QwenProvider } from './qwen.provider';
export interface ResolveOptions {
    readonly model?: string;
}
export declare class ProviderRegistry implements OnModuleInit {
    private readonly qwenProvider;
    private readonly mockProvider;
    private readonly anthropicProvider;
    private readonly openaiProvider;
    private readonly providers;
    constructor(qwenProvider: QwenProvider, mockProvider: MockProvider, anthropicProvider: AnthropicProvider, openaiProvider: OpenAIProvider);
    onModuleInit(): void;
    register(provider: ModelProvider): void;
    listAvailable(): ModelProvider[];
    resolve(options?: ResolveOptions): {
        provider: ModelProvider;
        model: string;
    };
    invoke(request: ProviderRequest, options?: ResolveOptions): Promise<ProviderResponse>;
    invokeStream(request: ProviderRequest, options?: ResolveOptions): AsyncGenerator<ProviderStreamChunk, void, void>;
    getProvider(name: string): ModelProvider;
}
