import { GroupType } from "./grouping"; interface BaseGroupDetails { sInd: number; cInd: number; eInd: number; qInd: number; parentIndices: number[]; capturedParentIndices: number[]; namedParentIndices: number[]; level: number; type?: GroupType; number?: number; name?: string; _i: number; isCapturing: boolean; hasQuantifier: boolean; quantifier: string | undefined; minCount: number; maxCount: number; } interface NonCapturingGroup extends BaseGroupDetails { type: Exclude; number?: undefined; name?: undefined; isCapturing: false; } interface CapturingGroup extends BaseGroupDetails { type: 'capturing'; number: number; name?: undefined; isCapturing: true; } interface NamedGroup extends BaseGroupDetails { type: 'named'; name: string; number: number; isCapturing: true; } export type GroupDetails = NamedGroup | NonCapturingGroup | CapturingGroup; export declare function getGroups(rx: string | RegExp): GroupDetails[]; export declare class GroupInfo { private _rx; private _source; private _allGroups; private _totalGroupCount; private _hasGroups; private _isGroup; private _details?; constructor(pattern: string | RegExp, allGroups?: GroupDetails[]); toString(): string; get unquantifiedSource(): string; get unquantifiedRx(): RegExp; get rx(): RegExp; get source(): string; get flags(): string; get isGroup(): boolean; get _hasChildren(): boolean; get hasChildren(): boolean; get _children(): GroupDetails[]; get sInd(): number; get eInd(): number; get cInd(): number; get qInd(): number; get parentIndices(): number[]; get capturedParentIndices(): number[]; get namedParentIndices(): number[]; get level(): number; get type(): GroupType | undefined; get number(): number | undefined; get name(): string | undefined; get isCapturing(): boolean; get hasQuantifier(): boolean; get quantifier(): string | undefined; get minCout(): number; get maxCount(): number; get allGroupDetails(): GroupDetails[]; get capturedGroupDetails(): GroupDetails[]; get namedGroupDetails(): GroupDetails[]; get _capturedGroups(): (CapturingGroup | NamedGroup)[]; get groupNames(): string[]; get topLevelGroupNames(): string[]; get namedGroups(): { [k: string]: undefined; }; get groups(): (CapturingGroup | NamedGroup)[]; get details(): (CapturingGroup | NamedGroup)[]; static getChild(allGroups: GroupDetails[], base: GroupDetails, rx: RegExp): GroupInfo; static offset(d: GroupDetails, base?: GroupDetails): NonCapturingGroup | { parentIndices: number[]; capturedParentIndices: number[]; namedParentIndices: number[]; sInd: number; cInd: number; eInd: number; qInd: number; _i: number; number: number | undefined; type: Exclude; name?: undefined; isCapturing: false; level: number; hasQuantifier: boolean; quantifier: string | undefined; minCount: number; maxCount: number; } | { parentIndices: number[]; capturedParentIndices: number[]; namedParentIndices: number[]; sInd: number; cInd: number; eInd: number; qInd: number; _i: number; number: number | undefined; type: "capturing"; name?: undefined; isCapturing: true; level: number; hasQuantifier: boolean; quantifier: string | undefined; minCount: number; maxCount: number; } | { parentIndices: number[]; capturedParentIndices: number[]; namedParentIndices: number[]; sInd: number; cInd: number; eInd: number; qInd: number; _i: number; number: number | undefined; type: "named"; name: string; isCapturing: true; level: number; hasQuantifier: boolean; quantifier: string | undefined; minCount: number; maxCount: number; }; } export declare const getGroupInfo: (pattern: string | RegExp) => GroupInfo; export {}; //# sourceMappingURL=decomposer.d.ts.map