import { BaseLlm, LlmRequest } from './base_llm';
/**
 * Registry for LLM implementations.
 * Maps model name patterns to LLM implementations.
 */
export declare class LlmRegistry {
    private static registry;
    /**
     * Registers a model pattern with an LLM implementation.
     *
     * @param pattern Regex pattern for model names
     * @param llmClass LLM class constructor
     */
    static register(pattern: string, llmClass: new (options: {
        model: string;
    } & LlmRequest) => BaseLlm): void;
    /**
     * Resolves a model name to an LLM implementation.
     *
     * @param model Model name
     * @param options Additional options for the LLM constructor
     * @returns An instance of the appropriate LLM implementation
     * @throws Error if no implementation is found for the model
     */
    static resolve(model: string, options?: LlmRequest): BaseLlm;
    /**
     * Creates a new LLM instance for the given model.
     *
     * @param model Model name
     * @param options Additional options for the LLM constructor
     * @returns An instance of the appropriate LLM implementation
     */
    static createLlm(model: string, options: LlmRequest): BaseLlm;
}
