import * as Range from './char-code-range.js'; import * as Stream from './stream.js'; type WithHash = T & { hash: number; }; type CharSetWithoutHash = { type: 'empty'; } | { type: 'node'; range: Range.CharCodeRange; left: CharSet; right: CharSet; }; export type CharSet = Readonly>; export declare const empty: CharSet; export declare function checkInvariants(set: CharSet): void; export declare function singleton(char: string): CharSet; export declare function fromArray(chars: string[]): CharSet; export declare function isEmpty(set: CharSet): boolean; export declare function fromRange(range: Range.CharCodeRange): CharSet; export declare function charRange(startChar: string, endChar: string): CharSet; export declare function isSingleton(set: CharSet): boolean; export declare function includes(set: CharSet, charCode: number): boolean; export declare function insertRange(set: CharSet, range: Range.CharCodeRange): CharSet; export declare function deleteRange(set: CharSet, range: Range.CharCodeRange): CharSet; export declare function intersectRange(set: CharSet, range: Range.CharCodeRange): Range.CharCodeRange[]; export declare function getRanges(set: CharSet): Generator; export declare function union(setA: CharSet, setB: CharSet): CharSet; export declare function difference(setA: CharSet, setB: CharSet): CharSet; export declare function intersection(setA: CharSet, setB: CharSet): CharSet; export declare function complement(set: CharSet): CharSet; export declare function compare(setA: CharSet, setB: CharSet): number; export declare function toString(set: CharSet): string; export declare function enumerate(set: CharSet): Stream.Stream; export declare function size(set: CharSet): number; export declare function sampleChar(set: CharSet, randomInt: (max: number) => number): string | null; export declare const alphabet: CharSet; export declare const wildcard: (options?: { dotAll: boolean; }) => CharSet; export declare const digitChars: CharSet; export declare const nonDigitChars: CharSet; export declare const wordChars: CharSet; export declare const nonWordChars: CharSet; export declare const whiteSpaceChars: CharSet; export declare const nonWhiteSpaceChars: CharSet; export declare const printableAsciiChars: CharSet; export {};