import type { AuthInput } from './auth.js'; import type { GenerateRequest, GenerateResponse, StreamRequest, StreamResult } from './generation.js'; import type { ModelProfile, ProviderDescriptor } from './catalog.js'; import type { ProviderId } from './providers.js'; import type { NormalizedProviderError } from './errors.js'; export interface CredentialValidationResult { ok: boolean; message?: string; } export interface ProviderRuntimeContext { auth?: AuthInput; metadata?: Record; } export interface ProviderAdapter { readonly provider: ProviderDescriptor; listModels(): readonly ModelProfile[]; generate(request: GenerateRequest, context?: ProviderRuntimeContext): Promise; stream(request: StreamRequest, context?: ProviderRuntimeContext): Promise; validateAuth(source?: AuthInput): CredentialValidationResult; normalizeError(error: unknown): NormalizedProviderError; } export interface ProviderRegistry { listProviders(): readonly ProviderDescriptor[]; listModels(): readonly ModelProfile[]; getProvider(providerId: ProviderId): ProviderAdapter | null; requireProvider(providerId: ProviderId): ProviderAdapter; } export declare class StaticProviderRegistry implements ProviderRegistry { private readonly providers; constructor(adapters: readonly ProviderAdapter[]); listProviders(): readonly ProviderDescriptor[]; listModels(): readonly ModelProfile[]; getProvider(providerId: ProviderId): ProviderAdapter | null; requireProvider(providerId: ProviderId): ProviderAdapter; } export declare const createProviderRegistry: (adapters: readonly ProviderAdapter[]) => ProviderRegistry; //# sourceMappingURL=registry.d.ts.map