UNPKG

1.17 kBTypeScriptView Raw
1import { types } from './types';
2declare type Base<T, K> = {
3 type: T;
4} & K;
5declare type ValueType<T, K> = Base<T, {
6 value: K;
7}>;
8export declare type Root = Base<types.ROOT, {
9 stack?: Token[];
10 options?: Token[][];
11 flags?: string[];
12}>;
13export declare type Group = Base<types.GROUP, {
14 stack?: Token[];
15 options?: Token[][];
16 remember: boolean;
17 followedBy?: boolean;
18 notFollowedBy?: boolean;
19 lookBehind?: boolean;
20 name?: string;
21}>;
22export declare type Set = Base<types.SET, {
23 set: SetTokens;
24 not: boolean;
25}>;
26export declare type Range = Base<types.RANGE, {
27 from: number;
28 to: number;
29}>;
30export declare type Repetition = Base<types.REPETITION, {
31 min: number;
32 max: number;
33 value: Token;
34}>;
35export declare type Position = ValueType<types.POSITION, '$' | '^' | 'b' | 'B'>;
36export declare type Reference = ValueType<types.REFERENCE, number>;
37export declare type Char = ValueType<types.CHAR, number>;
38export declare type Token = Group | Position | Set | Range | Repetition | Reference | Char;
39export declare type Tokens = Root | Token;
40export declare type SetTokens = (Range | Char | Set)[];
41export {};