// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { BottomPanelAppState } from "./BottomPanelAppState";
import type { CoderAppState } from "./CoderAppState";
import type { NextEditAppState } from "./NextEditAppState";
import type { RightPanelKind } from "./RightPanelKind";
import type { SlackAppState } from "./SlackAppState";
import type { ThemeMode } from "./ThemeMode";
import type { WorkspaceMeta } from "./WorkspaceMeta";

export type AppState = { 
/**
 * Catalog of every workspace the user has on this machine
 * (Phase 7.2). Empty until the user names their first
 * workspace in preboot mode. Mutated through the
 * `workspace_create` / `workspace_delete` /
 * `workspace_rename` IPC; the launcher reads it to pick
 * the most-recently-active slug to spawn (Phase 7.9).
 */
workspaces: Array<WorkspaceMeta>, 
/**
 * Active UI theme. Per-machine; survives workspace switches.
 */
theme: ThemeMode, 
/**
 * Per-machine, non-secret Slack panel state. The `xoxp-` token
 * itself never lives here — it stays in the OS keyring (see
 * `specs/slack-chat.md`).
 */
slack: SlackAppState, 
/**
 * Bottom-panel visibility + height. Hosts service-log streams and
 * (Phase 5) terminals, so it's worth restoring across launches —
 * users tend to live with it open or closed and resent the panel
 * re-jumping to a default height every restart.
 */
bottom_panel: BottomPanelAppState, 
/**
 * Which surface — chat or coder — is mounted in the single
 * right-side panel slot. `None` means the slot is closed. Chat
 * and coder are mutually exclusive: opening one swaps the other
 * out rather than stacking. Persisted so the user lands back in
 * whichever surface they had open at last shutdown. Defaults to
 * `None` (closed) for first-run users.
 */
right_panel: RightPanelKind | null, 
/**
 * Per-machine coder state — picks up where the user left off
 * without forcing them to navigate the sessions list again.
 */
coder: CoderAppState, 
/**
 * Local llama.cpp autocomplete: managed `llama-server` spawn fields + optional external HTTP base.
 */
next_edit: NextEditAppState, };
