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 interface RedisWorkspaceStateStoreOptions extends WorkspaceStateStoreOverrides { url?: string; keyPrefix?: string; } /** * WorkspaceStateStore backed by one Redis server. * * Key layout under one prefix, everything scoped by workspace id: * * - `{prefix}workspaces` — hash, workspace id -> metadata JSON * - `{prefix}{ws}:namespace:nodes` (+ `:user`) — namespace plane * - `{prefix}{ws}:observer:*` — observer plane * - `{prefix}{ws}:sessions` — session table * * All plane state survives restarts and is visible to every process * pointed at the same url and prefix, so a workspace rebuilt from its * config alone gets identical overlays, history, sessions, and grants. * Mirrors the Python RedisWorkspaceStateStore. */ export declare class RedisWorkspaceStateStore extends WorkspaceStateStore { readonly url: string; private readonly prefix; private readonly metaKey; private clientPromise; private readonly namespaces; private readonly observers; private readonly sessionTables; constructor(options?: RedisWorkspaceStateStoreOptions); private client; 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=redis.d.ts.map