import type { MaybePromise, FieldPath } from './index.js'; type PathData = { parent: any; key: string; value: any; path: string[]; isLeaf: boolean; set: (value: any) => 'skip'; }; export declare function isInvalidPath(originalPath: string[], pathData: PathData): boolean; export declare function pathExists(obj: T, path: string[], options?: { value?: (value: unknown) => boolean; modifier?: (data: PathData) => undefined | unknown | void; }): PathData | undefined; export declare function traversePathAsync(obj: T, realPath: FieldPath, modifier?: (data: PathData) => MaybePromise): Promise; export declare function traversePath(obj: T, realPath: FieldPath, modifier?: (data: PathData) => undefined | unknown | void): PathData | undefined; type TraverseStatus = 'abort' | 'skip' | unknown | void; export declare function traversePaths>(parent: T, modifier: (data: PathData) => TraverseStatus, path?: Path | []): TraverseStatus; export declare function traversePathsAsync>(parent: T, modifier: (data: PathData) => MaybePromise, path?: Path | []): Promise; /** * Compare two objects and return the differences as paths. */ export declare function comparePaths(newObj: unknown, oldObj: unknown): string[][]; export declare function setPaths(obj: Record, paths: string[][], value: unknown): void; export {};