import { Assistant, ChatModel, ChatType, ConversationContext } from '../interfaces';

export declare class MultiChatModelSwitch implements ChatModel {
    name: string;
    human_name: string;
    input_type: ChatType[];
    llms: ChatModel[];
    protected llmMap: Map<string, ChatModel>;
    protected llm?: ChatModel;
    constructor(llms: ChatModel[]);
    onPrepareTextMessage(controller: AbortController, ctx: ConversationContext): Promise<void> | undefined;
    call(ctx: ConversationContext, assistant: Assistant): Promise<void>;
    calling(ctx: ConversationContext, assistant: Assistant, llm: ChatModel, llms?: ChatModel[]): Promise<void>;
    callWithFallback(ctx: ConversationContext, assistant: Assistant, llms?: ChatModel[]): Promise<void>;
    protected resolve(name?: string): ChatModel | undefined;
    protected find(searchName: string): ChatModel | undefined;
}
