import type { ObserverStore } from '@struktoai/mirage-core/observe/store'; import type { NamespaceStore } from '@struktoai/mirage-core/workspace/mount/namespace/store'; import type { SessionStore } from '@struktoai/mirage-core/workspace/session/store'; import { WorkspaceStateStore } from '@struktoai/mirage-core/workspace/store/base'; import type { WorkspaceFields, WorkspaceStateStoreOverrides } from '@struktoai/mirage-core/workspace/store/base'; export declare const DEFAULT_STATE_ROOT = "~/.mirage/state"; export interface DiskWorkspaceStateStoreOptions extends WorkspaceStateStoreOverrides { root?: string; } /** * WorkspaceStateStore backed by a directory tree. * * Each workspace is one self-contained directory (delete a workspace * by removing its folder): * * - `{root}/workspaces/{ws}/workspace.json` — metadata record * - `{root}/workspaces/{ws}/sessions/{sid}.json` — session table * - `{root}/workspaces/{ws}/namespace.json` — nodes + user, one JSON * - `{root}/workspaces/{ws}/history//.jsonl` — history * * The layout mirrors the S3 store file-for-object; mutable records get * the same generation-CAS contract via the lockfile protocol * (O_CREAT|O_EXCL mutex, tmp write, rename(2)), so multiple local * processes share one workspace with zero infrastructure: a CLI-created * workspace survives restart like `git init`. Local filesystems only; * anything cross-machine belongs on redis or s3. Mirrors the Python * DiskWorkspaceStateStore byte-for-byte on disk. */ export declare class DiskWorkspaceStateStore extends WorkspaceStateStore { private readonly root; private readonly meta; private readonly namespaces; private readonly observers; private readonly sessionTables; constructor(options?: DiskWorkspaceStateStoreOptions); private wsRoot; private metaClient; protected makeNamespace(workspaceId: string): NamespaceStore; protected makeObserver(workspaceId: string): ObserverStore; protected makeSessions(workspaceId: string): SessionStore; protected readMeta(workspaceId: string): Promise; protected writeMeta(workspaceId: string, fields: WorkspaceFields): Promise; protected casWriteMeta(workspaceId: string, fields: WorkspaceFields, expectedGeneration: number): Promise; protected closeSelf(): Promise; } //# sourceMappingURL=disk.d.ts.map