export type StartState = { version: 1; completedAt: string; workspaceUuid: string; /** Where the person chose to continue: an agent bin, or "code"/"cli"/"demo"/"none". */ continued?: string; }; export declare function getStartStatePath(): string; export declare function loadStartState(): StartState | undefined; /** * `value` as state, or undefined when it is not. * * Checked rather than cast, because the file is on a disk people edit and the * cast promised a shape nothing verified. Unknown `version` reads as absent so * a future format degrades to "never ran" — the entrance opens once more, * which is the harmless direction. * * Exported for tests; `loadStartState` is the only production caller. */ export declare function asStartState(value: unknown): StartState | undefined; /** * Best-effort: a machine that cannot write its config directory — a sandbox, a * read-only home — has still just been through the flow, and failing the * command at the end of a successful one would be the worst possible moment to * complain. */ export declare function saveStartState(state: StartState): boolean; /** * Forget that this machine has been through the flow, so the next bare * `cargo-ai` runs it again. Signing out is the one unambiguous "start me over" * this CLI has — someone who does it and then types `cargo-ai` is asking for * the entrance, not for a palette of commands that all exit 3. */ export declare function clearStartState(): boolean; /** * Whether a bare `cargo-ai` should run `start` rather than open the palette. * * Deliberately not "are you signed in" alone: the entrance greets a person * once. After that, and for anything that is not a person at a terminal, bare * `cargo-ai` keeps doing exactly what it did before. * * Exported for tests; `index.ts` is the only production caller. */ export declare function shouldRunStart(input: { signedIn: boolean; interactive: boolean; /** Whether the flow has already run on this machine. */ ranBefore: boolean; }): boolean; //# sourceMappingURL=state.d.ts.map