import type { ModelProvider } from './model.js'; export type ModelConfig = string | string[] | false; export interface ProviderSettings { baseUrl?: string; apiKey?: string; apiKeyEnv?: string; headers?: Record; auth?: 'bearer' | 'api-key' | 'none'; apiKeyHeader?: string; project?: string; location?: string; region?: string; sessionToken?: string; } export type ProvidersConfig = Record; export interface ParsedModelRef { provider: string; modelId: string; original: string; } export interface ResolveModelProviderOptions { model?: ModelConfig; providers?: ProvidersConfig; env?: Record; production?: boolean; allowMock?: boolean; } export interface ResolvedModelProvider { model?: string; provider?: ModelProvider; providerName?: string; modelId?: string; warnings: string[]; } /** * Resolves a parsed `provider/model-id` ref into a concrete provider. Registered factories let * out-of-core packages (e.g. @fabric-harness/databricks) add providers without editing core. * Mirrors the signature of the built-in resolver functions below. */ export type ModelProviderFactory = (parsed: ParsedModelRef, providers: ProvidersConfig | undefined, env: Record, warnings: string[]) => ResolvedModelProvider; /** * Register a model provider resolvable via `FABRIC_MODEL=/`. Built-in providers * always take precedence; registering a name a built-in already owns has no effect on routing. * Idempotent by name (last registration wins). Call at module import time. */ export declare function registerModelProvider(name: string, factory: ModelProviderFactory): void; /** Names of externally registered providers, for diagnostics. */ export declare function registeredModelProviders(): string[]; export declare function parseModelRef(model: string): ParsedModelRef | undefined; export declare function resolveModelProvider(options?: ResolveModelProviderOptions): ResolvedModelProvider; //# sourceMappingURL=providers.d.ts.map