export interface ActiveTenantOptions { /** Override config dir (tests). Defaults to `~/.vskill`. */ configDir?: string; /** Filesystem adapter for tests. */ fs?: ActiveTenantFs; } export interface ActiveTenantFs { existsSync(path: string): boolean; readFileSync(path: string): string; writeFileSync(path: string, content: string, mode: number): void; renameSync(oldPath: string, newPath: string): void; mkdirSync(path: string): void; unlinkSync(path: string): void; } /** * Read the active tenant slug. Returns null when the config file is * missing, unreadable, or has no `currentTenant` field. */ export declare function getActiveTenant(opts?: ActiveTenantOptions): string | null; /** * Write the active tenant slug. Preserves unknown keys (read-modify-write * merge, AC-US3-06) and uses an atomic .tmp + rename so a concurrent CLI * + Studio write never observes a partial file. * * Pass `null` to clear `currentTenant` while preserving the rest of the * config (e.g. `vskill orgs use --clear` later). */ export declare function setActiveTenant(slug: string | null, opts?: ActiveTenantOptions): void; /** * Read the entire config object (forward-compat — surfaces all keys, not * just `currentTenant`). Returns an empty object when the file is missing * or corrupt. */ export declare function readConfig(opts?: ActiveTenantOptions): Record; /** Resolve the path the helpers will read/write. Useful for diagnostics. */ export declare function getConfigPath(opts?: ActiveTenantOptions): string;