import { type Mask } from '../mask';
import { Token } from './parser';
export type RegexToken = {
    /**
     * Char means it is single char and we can compare input value using simple `===`
     * Regex means we need to use regex to compare input value (e.g. `\d`, `[a-z]`)
     */
    type: 'char' | 'regex';
    /**
     * Expected character or regex source
     */
    expect: string;
    /**
     * Static means users forced to input this char, meaning masked input can suggest this char
     */
    static: boolean;
    /**
     * Dynamic means this char is not forced and can be skipped
     */
    dynamic: boolean;
};
type PossibleResult = RegexToken[];
export declare const normalizeTokens: (tokens: Token[], dynamic?: boolean) => PossibleResult[];
export declare const compareWithMask: (mask: PossibleResult, value: string) => boolean;
export declare const createRegexMask: (regex: RegExp, options?: {
    reverse: boolean;
}) => Mask<RegexToken>;
export {};
