import { CharacterReader } from '../character-reader/character-reader-level-0';
import { CharacterReaderLevel2Stack } from '../character-reader/character-reader-level-2';
import { MyFeatures } from '../parse';
import { NodeExtra } from '../node-extra';
import { Quantifier } from 'regjsparser';
export type QuantifierIterations = ReadonlyMap<Quantifier<MyFeatures>, number>;
export type StackQuantifierEntry = Readonly<{
    iteration: number;
    quantifier: Quantifier<MyFeatures>;
    type: 'quantifier';
}>;
export type QuantifiersInInfinitePortion = ReadonlySet<Quantifier<MyFeatures>>;
export declare function buildQuantifiersInInfinitePortion(stack: CharacterReaderLevel2Stack, nodeExtra: NodeExtra): QuantifiersInInfinitePortion;
export declare function buildQuantifierIterations(stack: CharacterReaderLevel2Stack): QuantifierIterations;
export declare function buildQuantifierCharacterReader({ caseInsensitive, dotAll, node, }: {
    caseInsensitive: boolean;
    dotAll: boolean;
    node: Quantifier<MyFeatures>;
}): CharacterReader;
