import type { FileReservation } from "../protocol/envelope.js"; /** Normalize a path/pattern for comparison: forward slashes, no "./", and * case-folded on Windows (NTFS is case-insensitive). */ export declare function normalizePath(p: string): string; /** True when `filePath` falls under reservation `pattern`. */ export declare function pathMatchesReservation(filePath: string, pattern: string): boolean; /** * a reservation older than ttlMs is expired and does not block anyone. * ttlMs 0 = unlimited default). */ export declare function isReservationExpired(reservation: FileReservation, ttlMs: number, now?: number): boolean; /** First conflicting reservation for `filePath`, or undefined. */ export declare function findConflict(filePath: string, reservationsByPeer: ReadonlyMap, selfAlias: string, ttlMs?: number): { alias: string; reservation: FileReservation; } | undefined;