import type { LivePath, LivePathPart } from "../../types/livemap.types.js"; export declare function clone_live_path(path: LivePath): LivePath; export declare function paths_equal(left: LivePath, right: LivePath): boolean; export declare function append_live_path(path: LivePath, part: LivePathPart): LivePath; export declare function parent_live_path(path: LivePath): LivePath | undefined; export declare function relative_live_path(prefix: LivePath, path: LivePath): LivePath | undefined; export declare function live_path_key(path: LivePath): string; /** * Format a LivePath for error messages and debug output. * * The output intentionally mirrors array path syntax because LivePath is the * canonical, unambiguous representation beneath later ergonomic surfaces. */ export declare function format_live_path(path: LivePath): string; /** * Return true when two data paths can affect each other. * * The rule is intentionally symmetric: * - a parent path overlaps a child path: `["user"]` overlaps `["user", "name"]` * - a child path overlaps a parent path: `["user", "name"]` overlaps `["user"]` * - sibling paths do not overlap: `["user", "name"]` ignores `["user", "role"]` */ export declare function paths_overlap(a: LivePath, b: LivePath): boolean; /** * Return true when `prefix` is an exact ancestor-or-self prefix of `path`. * * This is intentionally strict equality per path segment. No dot splitting, * coercion, stringification, or wildcard behavior happens here. */ export declare function path_is_prefix(prefix: LivePath, path: LivePath): boolean; //# sourceMappingURL=livemap.path.d.ts.map