import type { ChatCompletionParams, LLMProvider } from '../types/provider/index.js'; /** * Fully-resolved capability set: every flag present, no optionals left. * What the query runtime branches on after applying the permissive default. */ export interface ResolvedProviderCapabilities { supportsTools: boolean; supportsStreaming: boolean; supportsFunctionCalling: boolean; supportsVision: boolean; supportsDocuments: boolean; supportsToolResultImages: boolean; supportsToolResultDocuments: boolean; maxOutputTokens?: number; } /** * THE permissive default: a provider that declares nothing is assumed to * handle everything — exactly the pre-negotiation behavior, so third-party * providers written before `LLMProvider.capabilities` existed keep working * without a warning storm. Shipped drivers always declare explicitly. */ export declare const PERMISSIVE_PROVIDER_CAPABILITIES: ResolvedProviderCapabilities; /** * Resolve a provider's declared capabilities against the permissive * default. Absent declaration ⇒ everything `true`; a partial declaration * (e.g. one missing `supportsVision`, added later) fills the gap * permissively per field. */ export declare function resolveProviderCapabilities(provider: Pick): ResolvedProviderCapabilities; /** Require explicit wire support before dispatching a native JSON Schema request. */ export declare function assertNativeStructuredOutputSupported(provider: Pick, params: Pick): void; /** Refuse a hosted search request before dispatch when the route cannot honor it. */ export declare function assertHostedWebSearchSupported(provider: Pick, params: Pick & Partial>): void; //# sourceMappingURL=capabilities.d.ts.map