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[];
