import type { CliId } from '../adapters/cli/types.js'; /** Executor-confirmed settings copied from Codex's rollout. */ export interface CodexThreadSettings { model?: string; /** Executor-confirmed reasoning effort; follows Codex's in-session model controls. */ reasoningEffort?: string; serviceTier: string; } /** Card-facing snapshot. `nonDefault` is true when the executor is running on a * tier other than `default`. We deliberately do NOT try to map the tier id to * the catalog display name "Fast": the rollout records only the tier id, and * the catalog (`models_cache.json`) is not guaranteed to exist in every * execution environment — under read-isolation the per-bot CODEX_HOME is * provisioned with auth/config only, so a catalog lookup there fails closed and * the badge would never appear even when the faster tier IS active. The badge * therefore names the concrete tier id (`⚡ priority`), which is truthful, * provider-agnostic, and needs no external catalog. */ export interface CodexServiceTierSnapshot extends CodexThreadSettings { nonDefault: boolean; } /** * Derive the read-only presentation snapshot from executor-confirmed settings. * No filesystem / catalog dependency — a non-`default` tier id is surfaced as-is. */ export declare function resolveCodexServiceTierSnapshot(settings: CodexThreadSettings): CodexServiceTierSnapshot; /** Card badge text for a session's tier snapshot, or undefined for * default / non-codex / no snapshot. A stale Codex snapshot can never decorate * another CLI's card (the cliId gate). Names the concrete tier id rather than * asserting "Fast" — see CodexServiceTierSnapshot. */ export declare function codexServiceTierBadge(cliId: CliId, snapshot: CodexServiceTierSnapshot | undefined): string | undefined; /** * Binds observations to one rollout generation. `bind` and `detach` publish an * explicit null so a daemon never carries a previous rollout's badge while the * new executor state is still unknown. */ export declare class CodexServiceTierTracker { private readonly resolve; private readonly publish; private rolloutPath; private snapshot; constructor(resolve: (settings: CodexThreadSettings) => CodexServiceTierSnapshot, publish: (snapshot: CodexServiceTierSnapshot | null) => void); bind(path: string, initial?: CodexThreadSettings): void; observe(path: string, settings: CodexThreadSettings | undefined): void; detach(): void; } //# sourceMappingURL=codex-service-tier.d.ts.map