export interface ActiveRootStore { /** The scan root all route handlers should use, resolved per request. */ getRoot(): string; /** Replace the active scan root (e.g. after a project switch). */ setRoot(root: string): void; /** * Re-derive the active root from `~/.vskill/workspace.json`'s active project. * Updates the store and returns the new value; if no active project resolves, * the current root is kept and returned. */ reload(workspaceDir: string): string; } /** * Resolve the active project's path from the workspace registry. Returns null * when there is no workspace, no active project, or the active id is dangling. * Shared by both boot resolution (eval-server) and runtime reloads (this store). */ export declare function resolveActiveRoot(workspaceDir: string): string | null; export declare function createActiveRootStore(initialRoot: string): ActiveRootStore;