import Configstore from 'configstore'; import { type CliConfig } from './cli-config.js'; /** Every directory the CLI keeps files in, and what it mounts keeps its own. */ export declare const rootPaths: import("env-paths").Paths; /** * What a config store can do, regardless of where it keeps the values. * * The CLI reads and writes through this interface so a test may hand code an * in-memory store (see `memory-config-store.ts`) instead of the real * file-backed one. */ export interface ConfigStore { readonly path: string; all: Record; readonly size: number; get: (key: string) => unknown; set: (key: string | Record, value?: unknown) => void; has: (key: string) => boolean; delete: (key: string) => void; clear: () => void; } export declare const getConfig: () => CliConfig; /** Replace the config, e.g., with an in-memory one for a test. */ export declare const setConfig: (nextConfig: CliConfig) => void; /** Drop the current config so the next read builds the real one. */ export declare const resetConfig: () => void; export declare class PersistentConfigStore implements ConfigStore { private readonly settingsStore; private readonly stateStore; readonly path: string; constructor(settingsStore: Configstore, stateStore: Configstore); get all(): Record; set all(value: Record); get size(): number; get(key: string): unknown; set(key: string | Record, value?: unknown): void; has(key: string): boolean; delete(key: string): void; clear(): void; private getStore; }