import type { CopilotModelContext } from "./copilot-model-catalog.ts";
/**
 * Static CAPI-derived limit snapshot for bundled GitHub Copilot models.
 *
 * CAPI is the source of truth for what GitHub actually enforces, and the live
 * `/models` catalog (or its disk cache) is always authoritative when
 * available — this table is consulted **only when the active catalog has no
 * entry for the model** (cold start without cache, catalog fetch failure,
 * network-restricted environments such as eval containers or CI). Without it,
 * the bundled pi-ai metadata wins, and several bundled entries disagree with
 * CAPI (snapshotted 2026-07-02): the gpt-5.x family claims a 400k window vs
 * CAPI's enforced 272k default tier, claude-opus-4.6/claude-sonnet-4.6 claim
 * the branded 1M window as their base tier vs CAPI's 200k default, and
 * claude-opus-4.6/4.7 ship a 32k output cap vs CAPI's real 64k.
 *
 * Why this matters (issue #1608): auto-compaction thresholds and overflow
 * recovery are driven by `model.contextWindow`, and request output caps by
 * `model.maxTokens`. With an overstated window a session never compacts,
 * sails past the server-side cap, and CAPI starts intercepting requests with
 * canned zero-usage refusals ("I'm sorry, but I cannot assist with that
 * request.") reported as `stopReason: "length"`. Understated output caps
 * instead truncate long responses below the real limit.
 *
 * Entries mirror the shape `resolveCopilotModelContext` derives from CAPI
 * `capabilities.limits` / `billing.token_prices`, including the long-context
 * tier where CAPI advertises one (`contextWindowOptions` with the branded
 * window plus the hard `maxInputTokens` prompt cap, e.g. 922k input + 128k
 * output for gpt-5.5's 1.05M tier). This keeps a returning user's persisted
 * long-context selection valid on a cold start without a catalog; actual long
 * tier use is still gated server-side by entitlement, with the existing
 * friendly-error handling on rejection. The snapshot covers every bundled
 * model present in the CAPI catalog — also the currently-agreeing ones — so
 * upstream metadata drift cannot silently reintroduce the failure. Bundled
 * models absent from the CAPI catalog (retired or not-yet-listed ids) are
 * intentionally omitted — there is no CAPI ground truth to snapshot for them.
 */
export type StaticCopilotModelFallback = Pick<CopilotModelContext, "contextWindow" | "contextWindowOptions" | "maxInputTokens" | "maxTokens">;
/**
 * Look up the static CAPI-derived limits for a bundled Copilot model. Returns
 * undefined for models with no CAPI catalog presence to snapshot.
 */
export declare function getStaticCopilotModelFallback(modelId: string): StaticCopilotModelFallback | undefined;
//# sourceMappingURL=copilot-model-static-fallbacks.d.ts.map