import URI from './uri'; export interface IKeyIterator { reset(key: K): this; next(): this; hasNext(): boolean; cmp(a: string): number; value(): string; } export declare class PathIterator implements IKeyIterator { private readonly _splitOnBackslash; private readonly _caseSensitive; private _value; private _from; private _to; constructor(_splitOnBackslash?: boolean, _caseSensitive?: boolean); reset(key: string): this; hasNext(): boolean; next(): this; cmp(a: string): number; value(): string; } export declare class UriIterator implements IKeyIterator { protected readonly caseSensitive: boolean; private _pathIterator; private _value; private _states; private _stateIdx; constructor(caseSensitive: boolean); reset(key: URI): this; next(): this; hasNext(): boolean; cmp(a: string): number; value(): string; } export declare class TernarySearchTree { static forUris(caseSensitive: boolean): TernarySearchTree; static forPaths(): TernarySearchTree; private _iter; private _root; constructor(segments: IKeyIterator); clear(): void; set(key: K, element: V): V | undefined; get(key: K): V | undefined; delete(key: K): void; findSubstr(key: K): V | undefined; findSuperstr(key: K): Iterator | undefined; private _nodeIterator; forEach(callback: (value: V, index: K) => any): void; private _forEach; } //# sourceMappingURL=ternary-search-tree.d.ts.map