/** * Per-Claude-session lens commands: `synap project use/clear` and `synap lens`. * * These bind the cross-cutting "project" dimension and let you inspect the * full lens (workspace + project + focus session) for the current Claude Code * session. All state lives in ~/.synap/lenses/.json — no backend * change; the pod stays agnostic. */ import { type BaseOpts } from "./data.js"; /** * Pin the active project — a peer lens to `synap use `. * * `ref` goes through the ONE resolution door (`lib/project-ref.ts`): * - uuid → today's behavior exactly: pinned against the ACTIVE pod. * - slug / / → resolved via the Control Plane directory; when the * project lives on another pod, the CLI switches activePod AND the project * together (auto-provisioning access on the pod if it isn't saved locally). * * Default: DURABLE — persists to ~/.synap/config.json (activeProjectId), same * tier as `synap use`. Composes with a Claude session: when one is active, the * session lens is ALSO updated so `resolveActiveLens()` reflects it immediately. * `--session`: ephemeral — scopes only this Claude Code session. Cross-pod refs * are REFUSED there: the session lens has no pod field. */ export declare function useProject(ref: string, opts: BaseOpts & { session?: boolean; }): Promise; export declare function clearProject(opts: BaseOpts & { session?: boolean; }): Promise; export declare function showLens(opts: BaseOpts): Promise; /** * List the projects on the active pod (mirrors `synap pods`) with an ACTIVE * marker on the currently-pinned one. Full ids are shown so they paste straight * into `synap project use `. Degrades to an empty list offline. */ export declare function projectList(opts: BaseOpts): Promise; /** * Create a project on the active pod. Governance may queue it as a proposal * instead of creating it live — we distinguish and message accordingly. On a * live create, guides the user to pin it + add to it. */ export declare function projectNew(name: string, opts: BaseOpts & { description?: string; }): Promise;