import type { InstalledPlugin, Scope } from '../types.js'; export declare function builtinViewsRoot(): string; export declare function builtinMemoryRoot(): string; export declare function builtinPiPackagesDir(): string; export declare function builtinPiPackageDir(name: string): string; export declare function userScopeRoot(): string; export declare function findProjectScopeRoot(startDir?: string): string | null; /** Every project scope root visible from `startDir`, nearest first — now a * PROFILE-AWARE pointer walk, not a single-pointer ancestor walk. Pointers are * `[startDir]` plus, when `profileId` resolves to a manifest, each of its * `projects` in manifest order; each pointer independently walks upward * collecting every ancestor `.crouter/` dir, the pointers' contributions * concatenate in pointer order, and the combined list dedupes to first * occurrence — so a `.crouter/` shared by two pointers contributes once, at * whichever pointer reached it first. `profileId` defaults to the process's * selected profile (`CRTR_PROFILE_ID`); a null/unresolvable profile collapses * to the single `[startDir]` pointer, reproducing today's behavior exactly. * Results are cached per (resolved startDir, profileId) — `resetScopeCache()` * invalidates on any profile mutation that can change project dirs or names. */ export declare function findProjectScopeRoots(startDir?: string, profileId?: string | null): string[]; export declare function projectScopeRoot(startDir?: string): string | null; export declare function projectScopeRoots(startDir?: string, profileId?: string | null): string[]; export declare function scopeRoot(scope: Scope): string | null; export declare function requireScopeRoot(scope: Scope): string; export declare function ensureProjectScopeRoot(startDir?: string): string; export declare function pluginsDir(scope: Scope): string | null; export declare function marketplacesDir(scope: Scope): string | null; export declare function configuredClisDir(scope: Scope): string | null; /** The configured-CLIs cache parent dir under an EXACT scope-root dir. Used to * address per-root caches when multiple project roots are visible; the single * source of the `configured-clis` path segment. */ export declare function configuredClisDirForRoot(scopeRootDir: string): string; /** Where substrate memory documents live per scope. Builtin memory is the * special case — its own package dir (builtinMemoryRoot), since the builtin * scope has no scopeRoot — mirroring viewsDir's builtin handling. User and * project memory live at scopeRoot(scope)/memory. */ export declare function scopeMemoryDir(scope: Scope): string | null; /** Where a plugin's substrate memory documents live: `/memory`. * The resolver mounts these under the virtual `/` namespace. */ export declare function pluginMemoryDir(plugin: InstalledPlugin): string; /** Where view definition dirs live per scope. Builtin views sit directly under * builtinViewsRoot() (no `views/` segment — they ARE the builtin views dir), * matching the loader's `//core.mjs` resolution. */ export declare function viewsDir(scope: Scope): string | null; export declare function resolveScopeArg(scopeArg: string | undefined): Scope | 'all'; export declare function listScopes(scopeArg: string | undefined): Scope[]; export declare function resetScopeCache(): void;