export type SkillTarget = "cursor" | "claude" | "openclaw" | "codex" | "gemini"; export type InstallScope = "user" | "project"; /** Where a definition was found, for warnings that never become writes. */ export interface ScanRoot { kind: "command" | "skill"; scope: InstallScope; root: string; } export declare const ALL_TARGETS: SkillTarget[]; export declare const DEFAULT_TARGETS: string; /** How a target's skills root was chosen, for `doctor` output. */ export type RootSource = "flag" | "env" | "default"; export interface DetectedTarget { target: SkillTarget; label: string; /** Resolved absolute user-scope skills root. */ userRoot: string; /** Project-scope skills root, relative to the project root. */ projectRoot: string; /** Directory whose presence implies the tool is installed. */ configHome: string; detected: boolean; source: RootSource; } export interface ResolveContext { home?: string; env?: NodeJS.ProcessEnv; /** Per-target `--root` overrides; highest precedence. */ roots?: Partial>; } export declare function pathExists(path: string): Promise; /** The escape hatch for a layout this package does not know about. */ export declare function overrideEnvName(target: SkillTarget): string; export declare function parseTargets(value: string): SkillTarget[]; /** `--root claude=/path` entries into a per-target override map. */ export declare function parseRootOverrides(entries: string[]): Partial>; /** * Resolve every target's roots and report which tools are actually present. * Detection is what keeps an install from creating config directories for * tools the developer does not use. */ export declare function detectTargets(context?: ResolveContext): Promise; /** * Every root worth scanning for a competing definition of a workflow: each * target's own skills roots at both scopes, plus the command directories and * cross-tool trees that shadow them. */ export declare function scanRoots(detected: DetectedTarget[], projectRoot: string, home: string): Array; //# sourceMappingURL=skill-roots.d.ts.map