export type SymlinkTargetClass = "windows-absolute" | "posix-absolute" | "escapes-scope" | "cross-company" | "allowlisted-legacy"; export type SymlinkTargetScope = { kind: "company"; companySlug: string; } | { kind: "personal"; }; /** Personal vault keys mirror their physical paths under the HQ root. */ export declare function personalSymlinkTargetLinkPath(relativePath: string): string; export interface SymlinkTargetReport { classification: SymlinkTargetClass; shape: string; } export interface InspectSymlinkTargetInput { /** HQ-relative link path using slash separators. */ linkPath: string; target: string; scope: SymlinkTargetScope; /** Default-off hq-flags decision. */ refuse: boolean; emit: (report: SymlinkTargetReport) => void; } export interface SymlinkTargetInspection { classification: SymlinkTargetClass | "in-scope"; refused: boolean; } export interface LocalSymlinkScopeInspection extends SymlinkTargetInspection { isSymlink: boolean; shape: string; } /** Inspect a local link without relying on a previous push pass to resolve policy. */ export declare function inspectLocalSymlinkScope(input: { absoluteLinkPath: string; linkPath: string; scopeRoot: string; scope: SymlinkTargetScope; }): LocalSymlinkScopeInspection; /** Compare a materialized path with the portable wire target across Windows aliases. */ export declare function materializedTargetMatchesWire(linkPath: string, localTarget: string, wireTarget: string, platform?: NodeJS.Platform): boolean; /** Classify a wire target without copying its contents into diagnostics. */ export declare function inspectSymlinkTarget(input: InspectSymlinkTargetInput): SymlinkTargetInspection; //# sourceMappingURL=symlink-target-policy.d.ts.map