import type { AST } from '@eslint-community/regexpp';
import createTree from 'functional-red-black-tree';
export declare class SimplifiedRegexCharacterClass {
private readonly flags;
/**
* This map defines the contents of the character class in the following way:
* For any entry {@code codepoint -> tree}, all the codepoints from {@code codepoint} up to (and excluding) the next
* entry are in the character class and belong to the given tree.
* For any entry {@code codepoint -> null}, all the codepoints from {@code codepoint} up to (and excluding) the next
* entry are not part of the character class.
* So a codepoint is contained in this class if and only if {@code contents.le(codePoint).value} is
* non-null and the tree returned by {@code value} will be the element of the character class which matches that
* code point.
*/
private contents;
constructor(flags: AST.Flags, element?: AST.CharacterClassElement);
add(element: AST.CharacterClassElement): void;
findIntersections(that: SimplifiedRegexCharacterClass): AST.Node[];
hasEntryBetween(from: number, to: number): boolean | AST.Node;
isRangeEmpty(from: number, to: number): boolean;
addRange(from: number, to: number, element: AST.CharacterClassElement): void;
put(key: number, value: AST.Node | undefined, tree: createTree.Tree): createTree.Tree;
private static readonly Builder;
}