/** * kosha-discovery — Core query helpers for ModelRegistry. * * I keep model lookup, role filtering, capability aggregation, and cheapest * route selection here so the registry façade can stay under the file-size * policy while preserving the public API. * @module */ import type { CapabilitySummary, CheapestModelOptions, CheapestModelResult, ModelCard, ModelMode, ModelRouteInfo, PricingMetric, ProviderCredentialPrompt, ProviderInfo, ProviderRoleInfo, RoleQueryOptions } from "./types.js"; import type { RegistryState } from "./registry-state.js"; /** * Return a stable provider descriptor, even for synthetic test providers. */ export declare function registryProviderDescriptor(_state: RegistryState, providerId: string, providerInfo?: ProviderInfo): import("./provider-catalog.js").ProviderDescriptor; /** * Normalize a role or capability token for routing and filtering. */ export declare function normalizeRoleToken(value: string): string; /** * Return the deduplicated role list for a single model. */ export declare function modelRoles(model: ModelCard): string[]; /** * Check whether a model satisfies a role or capability query. */ export declare function modelSupportsRole(model: ModelCard, roleOrCapability: string): boolean; /** * List models with provider-aware deduplication and optional filters. */ export declare function registryModels(state: RegistryState, filter?: { provider?: string; originProvider?: string; mode?: ModelMode; capability?: string; }): ModelCard[]; /** * Build the provider -> model -> roles matrix used by the legacy API. */ export declare function registryProviderRoles(state: RegistryState, filter?: RoleQueryOptions): ProviderRoleInfo[]; /** * Return prompts for currently discovered providers missing required credentials. */ export declare function registryMissingCredentialPrompts(state: RegistryState, providerIds?: string[]): ProviderCredentialPrompt[]; /** * Rank the cheapest models for a normalized role/mode query. */ export declare function registryCheapestModels(state: RegistryState, options?: CheapestModelOptions): CheapestModelResult; /** * Find every provider route for a normalized model identifier. */ export declare function registryModelRoutes(state: RegistryState, modelId: string): ModelCard[]; /** * Enrich raw routes with preferred/direct metadata for legacy consumers. */ export declare function registryModelRouteInfo(state: RegistryState, modelId: string): ModelRouteInfo[]; /** * Aggregate capability statistics across all discovered models. */ export declare function registryCapabilities(state: RegistryState, filter?: { provider?: string; }): CapabilitySummary[]; /** * Pick the default pricing metric for a cheapest-model query. */ export declare function defaultPricingMetric(options?: CheapestModelOptions): PricingMetric; /** * Compute a comparable score for a model/pricing metric combination. */ export declare function computeModelScore(model: ModelCard, metric: PricingMetric, inputWeight: number, outputWeight: number, roleOrCapability?: string): number | undefined; /** * Normalize a user-supplied result limit into a safe positive integer. */ export declare function normalizeLimit(limit: number | undefined): number; //# sourceMappingURL=registry-query.d.ts.map