import type { Api, AssistantImages, AssistantMessage, AssistantMessageEventStream, AuthOperationOptions, AuthResult, ClassifierApi, ClassifierContext, ClassifierModel, ClassifierResult, Context, ImageApi, ImageModel, ImagesContext, Model, ModelsApiStreamOptions, ModelsClassifierOptions, ModelsImagesOptions, ModelsRefreshOptions, ModelsRefreshResult, ModelsSimpleStreamOptions, ModelType, ModelTypeMap, Provider, ProviderHeaders } from "@bastani/pi-ai"; import type { ModelRuntime } from "./model-runtime.js"; import type { AuthStatus, ProviderConfigInput } from "./provider-composer.ts"; export type { ProviderConfigInput } from "./provider-composer.ts"; export type ResolvedRequestAuth = { ok: true; apiKey?: string; headers?: ProviderHeaders; baseUrl?: string; env?: Record; } | { ok: false; error: string; }; export { clearApiKeyCache } from "./provider-composer.ts"; /** * Compatibility facade exposed to extensions. * Coding-agent internals use ModelRuntime directly. */ export declare class ModelRegistry { private readonly runtime; constructor(runtime: ModelRuntime); /** * Reload models.json asynchronously. Await before making synchronous registry reads. * Returns pi's refresh result so callers can react to per-provider failures * (`errors`) and cancellation (`aborted`); pi reports both without rejecting. */ refresh(options?: ModelsRefreshOptions): Promise; getError(): string | undefined; getAll(): Model[]; getAvailable(): Model[]; find(provider: string, modelId: string): Model | undefined; getModelsOfType(type: T, provider?: string): readonly ModelTypeMap[T][]; getAvailableOfType(type: T, provider?: string, options?: AuthOperationOptions): Promise; getModelOfType(type: T, provider: string, id: string): ModelTypeMap[T] | undefined; getClassifierModel(provider: string, modelId: string): ClassifierModel | undefined; hasConfiguredAuth(model: Model): boolean; /** Boolean-only access to configured credential screening, without resolving request auth. */ containsConfiguredCredential(serialized: string): Promise; getApiKeyAndHeaders(model: Model): Promise; getProviderAuthStatus(provider: string): AuthStatus; getProvider(provider: string): Provider | undefined; /** Stream through the configured provider with request-time authentication. */ stream(model: Model, context: Context, options?: ModelsApiStreamOptions): AssistantMessageEventStream; /** Stream with provider-neutral options and request-time authentication. */ streamSimple(model: Model, context: Context, options?: ModelsSimpleStreamOptions): AssistantMessageEventStream; /** Complete through the active runtime so provider composition and request auth apply. */ complete(model: Model, context: Context, options?: ModelsApiStreamOptions): Promise; classify(model: ClassifierModel, context: ClassifierContext, options?: ModelsClassifierOptions): Promise; generateImages(model: ImageModel, context: ImagesContext, options?: ModelsImagesOptions): Promise; getProviderDisplayName(provider: string): string; getProviderAuth(provider: string, options?: AuthOperationOptions): Promise; getApiKeyForProvider(provider: string): Promise; isUsingOAuth(model: Model): boolean; registerProvider(provider: Provider): void; registerProvider(providerName: string, config: ProviderConfigInput): void; unregisterProvider(providerName: string): void; getRegisteredProviderConfig(providerName: string): ProviderConfigInput | undefined; getRegisteredNativeProvider(providerName: string): Provider | undefined; getRegisteredProviderIds(): readonly string[]; } //# sourceMappingURL=model-registry.d.ts.map