export interface JSONPathCommonMethods, PathItemType> { update(nextPath: Array): Self; clone(): Self; prepend(item: PathItemType): Self; append(item: PathItemType): Self; replaceAt(i: number, replacer: PathItemType): Self; merge(otherPath: Self): Self; removeLeft(until: number): Self; removeRight(until: number): Self; slice(from: number, to: number): Self; } export declare class JSONPath { #private; constructor(path: Array, string: string); clear(): void; get length(): number; isRootOf(path: JSONPath): boolean; isEqual(path: JSONPath): boolean; isNotEqual(path: JSONPath): boolean; update(path: Array, string: string): this; pop(): T | undefined; prepend(item: T): this; append(item: T): this; at(index: number): T | undefined; head(): T; tail(): T; removeAt(i: number): this; replaceAt(i: number, value: T): this; removeLeft(until: number): this; removeRight(until: number): this; trimStartWith(path: JSONPath): this; concat(elements: Array): this; toString(): string; toJSON(): T[]; toArray(): T[]; }