/**
 * Workspace selection + filesystem allow-roots. Two responsibilities:
 *   1. Persist the operator's active workspace (and recent picks) under
 *      ~/.rothunter/workspace.json so server restarts remember the choice.
 *   2. Guard every fs-reaching endpoint against paths outside the
 *      configured allow-roots — defaults to $HOME (+ /workspace inside the
 *      Docker image) unless ROTHUNTER_FS_ROOTS overrides.
 *
 * Module-level mutables (WORKSPACE_ROOT, RECENT_WORKSPACES) are exposed
 * through getters/setters so the rest of the server can hold a reference
 * to "current workspace" without each caller re-reading the persisted
 * config every time.
 */
export declare const CONFIG_DIR: string;
export declare const CONFIG_FILE: string;
export declare const FS_CASE_INSENSITIVE: boolean;
export declare const FS_ALLOW_ROOTS: string[];
export declare function isUnderAllowRoot(abs: string): boolean;
interface PersistedWorkspaceConfig {
    current: string;
    recent: string[];
}
export declare function readPersistedWorkspace(): PersistedWorkspaceConfig | null;
/**
 * Boot-time workspace initialisation. Must be called once before any
 * getWorkspaceRoot() reader. Throws when no candidate falls inside the
 * allow-roots — the server is unusable in that state, so we let the
 * caller decide whether to exit or fall back.
 */
export declare function initWorkspaceStore(initial: string): {
    workspaceRoot: string;
    recent: string[];
};
export declare function getWorkspaceRoot(): string;
export declare function getRecentWorkspaces(): ReadonlyArray<string>;
export declare function setWorkspaceRoot(next: string): void;
export declare function persistCurrentWorkspace(): Promise<void>;
export {};
//# sourceMappingURL=workspace-store.d.ts.map