import type { ProviderSecret } from '../credentials/CredentialVault'; import { type ProviderDescriptor, type ProviderRegistry } from '../providers/ProviderRegistry'; import { type DiscoveredProviderModelType } from './ProviderModelType'; export type { DiscoveredProviderModelType } from './ProviderModelType'; export type DiscoveredProviderModel = { id: string; displayName?: string; modelType: DiscoveredProviderModelType; }; export interface ProviderModelDiscoveryAdapter { readonly provider: string; discover(input: { baseUrl: string; secret: ProviderSecret; signal?: AbortSignal; }): Promise; } export interface ProviderModelDiscoveryAdapterOptions { registry?: ProviderRegistry; fetch?: typeof fetch; maxPages?: number; } export interface ProviderModelDiscoveryRegistryOptions extends ProviderModelDiscoveryAdapterOptions { } /** * Typed lookup for the provider-specific model discovery adapters. * * The registry deliberately contains only the providers with a supported * model-list transport. Adding a provider requires an explicit adapter rather * than falling back to an arbitrary endpoint. */ export declare class ProviderModelDiscoveryRegistry { readonly adapters: ReadonlyMap; constructor(options?: ProviderModelDiscoveryRegistryOptions); get(provider: string): ProviderModelDiscoveryAdapter; list(): ProviderModelDiscoveryAdapter[]; } export type ProviderModelDiscoveryAdapterRegistry = ProviderModelDiscoveryRegistry; export declare function createProviderModelDiscoveryAdapters(options?: ProviderModelDiscoveryAdapterOptions): ProviderModelDiscoveryRegistry; interface ProviderModelDiscoveryAdapterConstructorOptions { provider: ProviderDescriptor; fetch?: typeof fetch; maxPages?: number; } declare abstract class BaseProviderModelDiscoveryAdapter implements ProviderModelDiscoveryAdapter { readonly provider: string; protected readonly descriptor: ProviderDescriptor; private readonly fetchImpl; private readonly maxPages; private readonly paginationCursorParam; constructor(options: ProviderModelDiscoveryAdapterConstructorOptions, paginationCursorParam?: string); discover(input: { baseUrl: string; secret: ProviderSecret; signal?: AbortSignal; }): Promise; protected createHeaders(secret: ProviderSecret): Headers; private resolveBaseUrl; private fetchPage; } export declare class OpenAiProviderModelDiscoveryAdapter extends BaseProviderModelDiscoveryAdapter { constructor(options: ProviderModelDiscoveryAdapterConstructorOptions); } export declare class AnthropicProviderModelDiscoveryAdapter extends BaseProviderModelDiscoveryAdapter { constructor(options: ProviderModelDiscoveryAdapterConstructorOptions); protected createHeaders(secret: ProviderSecret): Headers; } export declare class KimiProviderModelDiscoveryAdapter extends BaseProviderModelDiscoveryAdapter { } export declare class BailianProviderModelDiscoveryAdapter extends BaseProviderModelDiscoveryAdapter { } export declare class DeepSeekProviderModelDiscoveryAdapter extends BaseProviderModelDiscoveryAdapter { } export { OpenAiProviderModelDiscoveryAdapter as OpenAiModelDiscoveryAdapter, AnthropicProviderModelDiscoveryAdapter as AnthropicModelDiscoveryAdapter, KimiProviderModelDiscoveryAdapter as KimiModelDiscoveryAdapter, BailianProviderModelDiscoveryAdapter as BailianModelDiscoveryAdapter, DeepSeekProviderModelDiscoveryAdapter as DeepSeekModelDiscoveryAdapter, };