export declare const OPUS_MODEL = "claude-opus-5[1m]"; export declare const SONNET_MODEL = "claude-sonnet-5"; export declare const HAIKU_MODEL = "claude-haiku-4-5"; export declare const MODEL_CONTEXT_WINDOW: Record; /** Look up context window size; defaults to 200k for unknown models. */ export declare function contextWindow(model: string): number; /** Friendly labels for the canonical model ids, for the /chat composer's * native-CC model dropdown (Task 820). A lever id outside this map renders * with its raw id as the label (the composer's append-fallback). */ export declare const MODEL_DISPLAY_NAMES: Record; /** The dropdown label for a model id: friendly name when canonical, else the * raw id (never misrepresents an off-map persisted lever). */ export declare function modelDisplayName(id: string): string; /** The exact selectable model ids (no aliases). Server-side re-seat validation * (Task 876) uses this so a body-supplied model can never reach the spawn argv * unchecked — a removed model (e.g. claude-fable-5) or a bare alias ('opus') * is rejected before the fork. */ export declare const SELECTABLE_MODELS: readonly string[]; export declare function isSelectableModel(id: string): boolean; /** Strip Claude Code's `[1m]` context-extension suffix so a selectable id * (`claude-opus-5[1m]`) compares equal to the live API/JSONL `message.model` * (suffix stripped upstream → `claude-opus-5`). Ids without the suffix pass * through. The /chat picker uses this to decide whether a chosen model is a * real change from the running one — a raw `selected !== live` compare is * always true for `[1m]` models. */ export declare function baseModelId(id: string): string; /** Map a model id (often the bare live id without `[1m]`) to its canonical * *selectable* id by base-id match; returns the input unchanged when no * selectable id shares its base. Lets the composer read-only row and the * context-window lookup resolve a live `claude-opus-5` back to * `claude-opus-5[1m]` (display name + 1M window). */ export declare function canonicalModelId(id: string): string; /** The 5 permission modes the /chat composer and re-seat fork may write. */ export declare const PERMISSION_MODES: readonly ["default", "acceptEdits", "plan", "auto", "bypassPermissions"]; export type PermissionMode = (typeof PERMISSION_MODES)[number]; export declare function isPermissionMode(value: string): value is PermissionMode; /** The 4 settings.json effort levels, low→highest. */ export declare const EFFORT_LEVELS: readonly ["low", "medium", "high", "xhigh"]; export type EffortLevel = (typeof EFFORT_LEVELS)[number]; export declare function isEffortLevel(value: string): value is EffortLevel; /** The 6 spawn-time permission modes: the 5 composer-writable modes plus the * fail-closed `dontAsk`. The pty-spawner re-exports this under its own names. */ export declare const SPAWN_PERMISSION_MODES: readonly ["default", "acceptEdits", "plan", "auto", "bypassPermissions", "dontAsk"]; export type SpawnPermissionMode = (typeof SPAWN_PERMISSION_MODES)[number]; /** The full effort set persisted in account.json: the 4 settings.json levels * plus the session-only `auto`/`max` excluded from that subset. */ export declare const SESSION_EFFORT_LEVELS: readonly ["auto", "low", "medium", "high", "xhigh", "max"]; export type SessionEffortLevel = (typeof SESSION_EFFORT_LEVELS)[number]; /** The 5 effort levels the /chat new-session picker may write: the 4 settings.json * levels plus the session-only `max`. Distinct from EFFORT_LEVELS (the fork/daemon * settings.json subset — `max` is invalid as a settings.json `effortLevel`) and * from SESSION_EFFORT_LEVELS (which also carries `auto`, never offered by the * picker). A `max` pick reaches the CLI via the `--effort max` argv flag, not the * inline `effortLevel` settings key. */ export declare const NEW_SESSION_EFFORT_LEVELS: readonly ["low", "medium", "high", "xhigh", "max"]; export type NewSessionEffortLevel = (typeof NEW_SESSION_EFFORT_LEVELS)[number]; export declare function isNewSessionEffortLevel(value: string): value is NewSessionEffortLevel; //# sourceMappingURL=index.d.ts.map