import { URI } from "./uri.js"; export interface IKeyIterator { reset(key: K): this; next(): this; hasNext(): boolean; cmp(a: string): number; value(): string; } export declare class StringIterator implements IKeyIterator { private _value; private _pos; reset(key: string): this; next(): this; hasNext(): boolean; cmp(a: string): number; value(): string; } export declare class ConfigKeysIterator implements IKeyIterator { private readonly _caseSensitive; private _value; private _from; private _to; constructor(_caseSensitive?: boolean); reset(key: string): this; hasNext(): boolean; next(): this; cmp(a: string): number; value(): string; } export declare class PathIterator implements IKeyIterator { private readonly _splitOnBackslash; private readonly _caseSensitive; private _value; private _valueLen; 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 { private readonly _ignorePathCasing; private readonly _ignoreQueryAndFragment; private _pathIterator; private _value; private _states; private _stateIdx; constructor(_ignorePathCasing: (uri: URI) => boolean, _ignoreQueryAndFragment: (uri: URI) => boolean); reset(key: URI): this; next(): this; hasNext(): boolean; cmp(a: string): number; value(): string; } export declare class TernarySearchTree { static forUris(ignorePathCasing?: (key: URI) => boolean, ignoreQueryAndFragment?: (key: URI) => boolean): TernarySearchTree; static forPaths(ignorePathCasing?: boolean): TernarySearchTree; static forStrings(): TernarySearchTree; static forConfigKeys(): TernarySearchTree; private _iter; private _root; constructor(segments: IKeyIterator); clear(): void; /** * Fill the tree with the same value of the given keys */ fill(element: V, keys: readonly K[]): void; /** * Fill the tree with given [key,value]-tuples */ fill(values: readonly [ K, V ][]): void; set(key: K, element: V): V | undefined; get(key: K): V | undefined; private _getNode; has(key: K): boolean; delete(key: K): void; deleteSuperstr(key: K): void; private _delete; private _min; private _balanceByStack; findSubstr(key: K): V | undefined; findSuperstr(key: K): IterableIterator<[ K, V ]> | undefined; private _findSuperstrOrElement; hasElementOrSubtree(key: K): boolean; forEach(callback: (value: V, index: K) => unknown): void; [Symbol.iterator](): IterableIterator<[ K, V ]>; private _entries; private _dfsEntries; _isBalanced(): boolean; }