import type { AgentDefinition } from "../agents/agents-registry.js";
export interface InstallOptions {
    global: boolean;
    projectRoot: string;
}
/**
 * 0845 T-002 (AC-US3-03): per-agent env-var overrides for global skills dirs.
 *
 * Only Antigravity is wired today (`VSKILL_ANTIGRAVITY_SKILLS_DIR`); the table
 * structure is reusable when future agents need an analogous escape hatch.
 * Returns null when no override applies so callers fall back to the
 * registry-declared `globalSkillsDir`.
 */
export declare function resolveGlobalSkillsDirEnvOverride(agent: AgentDefinition): string | null;
/**
 * Resolve the skills directory for an agent given the install scope.
 *
 * Global: uses agent.globalSkillsDir (e.g. ~/.claude/skills)
 *         Honors per-agent env-var overrides via
 *         `resolveGlobalSkillsDirEnvOverride()` — currently
 *         `VSKILL_ANTIGRAVITY_SKILLS_DIR` for Antigravity.
 * Local:  uses projectRoot + agent.localSkillsDir (e.g. ./project/.claude/skills)
 */
export declare function resolveAgentSkillsDir(agent: AgentDefinition, opts: InstallOptions): string;
export declare function ensureCanonicalDir(base: string, global: boolean): string;
/** Test-only helper to reset the module-scoped symlink-warning flag. */
export declare function __resetSymlinkWarning(): void;
export declare function createRelativeSymlink(target: string, linkPath: string): boolean;
/**
 * Install a skill using the canonical symlink approach:
 * 1. Write SKILL.md to .agents/skills/{name}/ (canonical source of truth)
 * 2. Create relative symlinks from each agent dir to the canonical dir
 * 3. For agents with known symlink issues, fall back to direct copy
 *
 * Optional agentFiles: additional files (e.g., agents/*.md) to install alongside SKILL.md.
 * Keys are relative paths within the skill directory.
 */
export declare function installSymlink(skillName: string, content: string, agents: AgentDefinition[], opts: InstallOptions, agentFiles?: Record<string, string>): string[];
/**
 * Install a skill by copying SKILL.md directly to each agent directory.
 *
 * Optional agentFiles: additional files (e.g., agents/*.md) to install alongside SKILL.md.
 */
export declare function installCopy(skillName: string, content: string, agents: AgentDefinition[], opts: InstallOptions, agentFiles?: Record<string, string>): string[];
/**
 * 0845 T-012/T-014: Resolve the Tier-2 INSTALL ROOT for an agent —
 * the parent of `localSkillsDir` / `globalSkillsDir`. Tier-2 transformers
 * emit relative paths that include their own subfolder layout (e.g.
 * `rules/<name>.mdc` for Cursor), so the dispatcher joins those onto
 * this root rather than onto the skills dir itself.
 *
 * Win32 (T-014, AC-US4-12): when `process.platform === "win32"` and the
 * agent declares `win32PathOverride`, that path is the install root
 * directly (no parent traversal). On POSIX hosts the override is ignored
 * — agents continue to honor `globalSkillsDir`'s tilde-expanded form.
 *
 * Project-scope (`global: false`) keeps the existing path-traversal
 * guard via `resolveAgentSkillsDir` so projects can't escape via a
 * crafted `localSkillsDir`. The returned root for project-scope is the
 * parent of the resolved skills dir, with the same traversal protection
 * already in force.
 */
export declare function resolveAgentInstallRoot(agent: AgentDefinition, opts: InstallOptions): string;
