/**
 * Class encapsulating the path representation used in JSON Patch
 * Implementation of JSON Pointer compliant with RFC 6901
 */
export declare class JsonPath {
    private readonly _path;
    private readonly _segments;
    /**
     * Constructor - Do not use directly, use the static factory method instead
     */
    private constructor();
    /**
     * Create a JsonPath object from a path string
     * @param path JSON Pointer path string (e.g., '/a/b/c')
     * @returns New JsonPath instance
     * @throws DomainError if the path is invalid
     */
    static parse(path: string): JsonPath;
    /**
     * Generate the root path
     * @returns JsonPath instance representing the root path
     */
    static root(): JsonPath;
    /**
     * Create a JsonPath object from an array of segments
     * @param segments Array of path segments
     * @returns New JsonPath instance
     */
    static fromSegments(segments: string[]): JsonPath;
    /**
     * Escape a path segment
     * @param segment Segment to escape
     * @returns Escaped segment
     */
    static escapeSegment(segment: string): string;
    /**
     * Unescape an escaped path segment
     * @param segment Escaped segment
     * @returns Original segment
     */
    static unescapeSegment(segment: string): string;
    /**
     * Get the path string
     */
    get path(): string;
    /**
     * Get the array of path segments
     */
    get segments(): readonly string[];
    /**
     * Check if the path is the root path
     * @returns true if it is the root path
     */
    isRoot(): boolean;
    /**
     * Get the parent path
     * @returns JsonPath instance representing the parent path
     * @throws DomainError if called on the root path
     */
    parent(): JsonPath;
    /**
     * Get the last segment of the path
     * @returns The last segment
     */
    lastSegment(): string;
    /**
     * Generate a child path
     * @param childSegment Child segment
     * @returns New JsonPath instance
     */
    child(childSegment: string): JsonPath;
    /**
     * Check if the path points to an array element
     * @returns true if the path points to an array element
     */
    isArrayElement(): boolean;
    /**
     * Check if the path points to the end of an array for appending
     * @returns true if the path points to the end of an array
     */
    isArrayAppend(): boolean;
    /**
     * Check path equality
     * @param other JsonPath to compare against
     * @returns true if equal
     */
    equals(other: JsonPath): boolean;
    /**
     * Get the string representation
     * @returns Path string
     */
    toString(): string;
}
//# sourceMappingURL=JsonPath.d.ts.map