export interface NonInputToken { type: 'nonInput'; char: string; includeInValue: boolean; displayEagerly: boolean; } export interface InputToken { type: 'input'; allow: RegExp | undefined; optional?: boolean; } export type MaskToken = NonInputToken | InputToken; export interface PossibleShift { fromIndex: number; shiftDistance: number; } export interface Mask { tokens: MaskToken[]; possibleShifts: PossibleShift[]; }