import type { CapabilityStatus, ModelArchitecture, ModelCapabilityMetadata, ModelSelectionSignals } from "./model.js"; import { type ModelReasoningCapabilities } from "./reasoning.js"; export type CodexCompatibilityStatus = "compatible" | "incompatible" | "unknown"; export type CodexCompatibility = { status: CodexCompatibilityStatus; reason?: string; }; export type CodexBillingScope = "metered-api" | "subscription" | "upstream-managed"; export type CodexModelCandidate = ModelSelectionSignals & { id: string; nativeId?: string; provider?: string; billingScope?: CodexBillingScope; architecture?: ModelArchitecture; supportedParameters?: readonly string[]; capabilities?: Readonly>; reasoning?: Pick; }; export type CodexStartupSelection = { model: string; compatibleModelIds: readonly string[]; }; export declare function codexCompatibility(model: CodexModelCandidate): CodexCompatibility; /** * Select an already-enriched Codex startup model. * * Explicit selection remains exact and validates only catalog membership, as * before. Implicit selection is fail-closed and billing-scope preserving. */ export declare function selectCodexStartupModel(input: { models: readonly CodexModelCandidate[]; preferredModel?: string; requestedModel?: string; }): CodexStartupSelection; export declare function withCodexCapabilityMetadata(model: CodexModelCandidate, metadata: ModelCapabilityMetadata): CodexModelCandidate;