export type InstallLocationScope = "project" | "personal" | "plugin"; export interface InstallLocation { scope: InstallLocationScope; agent: string; agentLabel: string; dir: string; pluginSlug?: string; pluginMarketplace?: string; symlinked: boolean; readonly: boolean; } /** * Pick the highest-precedence install (project > personal > plugin) from a * set of locations. Returns undefined for an empty input. Used by both the * /api/skills/updates row builder and the reveal-in-editor route so they * agree on which copy is the "live" one to surface or open. */ export declare function pickHighestPrecedenceLocation(locations: readonly InstallLocation[]): InstallLocation | undefined; /** * Find every install location of a skill identified by its canonical platform * name (e.g. "anton-abyzov/greet-anton/greet-anton"). Returns one entry per * (scope, agent, dir) triple where SKILL.md is present. Returns [] for * malformed or path-traversal-laden names. */ export declare function scanSkillInstallLocations(canonicalName: string, projectRoot?: string): InstallLocation[];