import type { ChatProvider, EmbedProvider, ImageProvider, ModelProvider, SpeechProvider, TranscriptionProvider } from "@xsai-ext/shared-providers"; import type { ProviderConfig, ProviderType } from "./config"; export interface IProviderClient { chat?: ChatProvider["chat"]; embed?: EmbedProvider["embed"]; image?: ImageProvider["image"]; speech?: SpeechProvider["speech"]; transcript?: TranscriptionProvider["transcription"]; model?: ModelProvider["model"]; } export interface IProviderFactory { createClient(config: ProviderConfig): IProviderClient; } declare class FactoryRegistry { private factories; constructor(); private registerDefaults; register(type: ProviderType, factory: IProviderFactory): void; get(type: string): IProviderFactory | undefined; listRegisteredTypes(): string[]; } /** * 全局唯一的提供商工厂注册实例。 * 新增 Provider 类型时,只需在此处调用 `ProviderFactoryRegistry.register(...)` 即可。 */ export declare const ProviderFactoryRegistry: FactoryRegistry; export {};