/** * multi-binary-drift-helpers — the pure PATH-probing primitives behind the * `build:multi-binary-drift` doctor check (`multi-binary-drift.ts`). * * These are declarations + small pure helpers only: the record shape, the * cross-platform candidate names, the read-only `exists` probe, and the * version dedupe. `multi-binary-drift.ts` imports them and re-exports * `PeaksBinaryRecord`, so the check's public surface is unchanged. */ /** * Local record shape — same as the canonical * `MultiBinaryDriftInspection.binaries[number]`. Re-declared so the * helper signature carries the concrete shape (the canonical * `MultiBinaryDriftInspection` widens `version` + `installDate` to * `string | null` so external consumers do not depend on the * field being nullable). */ export type PeaksBinaryRecord = { readonly path: string; readonly version: string | null; readonly installDate: string | null; readonly realpath: string; }; /** * Cross-platform candidate names. Windows shims the executable as * `peaks.cmd` and `peaks.ps1` (npm writes both); POSIX names the * binary `peaks`. We probe all three names on every platform — * probing a non-existent file is a no-op, so cross-list probing is * safe. */ export declare function candidateBinaryNames(dir: string): ReadonlyArray; export declare function existsSafe(p: string): boolean; /** * `version === null` means we could not read the package.json (or * its `name` did not equal `peaks-loop`). Those records stay in * `binaries` for the report but do NOT contribute to * `uniqueVersions` — including null would falsely trigger drift * detection when the only failures are unreadable binaries. */ export declare function dedupeVersions(versions: ReadonlyArray): ReadonlyArray;