export declare class Token {
    type: string;
    value: unknown;
    text: string;
    pos: number;
    line: number;
    column: number;
    constructor(type: string, value: unknown, text: string, pos?: number, line?: number, column?: number);
    toString(colorize?: (_type: string, text: string) => string): string;
    isA(type: string, value?: unknown): boolean;
}
export declare class ParsingError extends Error {
    name: string;
    message: string;
    pos: number;
    line: number;
    column: number;
    input: string;
    constructor(message: string, pos: number, line: number, column: number, input: string);
    toString(): string;
}
export interface TokenInfo {
    line: number;
    column: number;
    pos: number;
    len: number;
}
export declare class ActionContext {
    private _tokenizr;
    private _data;
    _repeat: boolean;
    _reject: boolean;
    _ignore: boolean;
    _match: RegExpExecArray | null;
    constructor(tokenizr: Tokenizr);
    data(key: string, value?: unknown): unknown;
    info(): TokenInfo;
    push(state: string): this;
    pop(): string;
    state(): string;
    state(state: string): this;
    tag(tag: string): this;
    tagged(tag: string): boolean;
    untag(tag: string): this;
    repeat(): this;
    reject(): this;
    ignore(): this;
    accept(type: string, value?: unknown): this;
    stop(): this;
}
export interface RuleState {
    state: string;
    tags: string[];
}
export type RuleAction = (this: ActionContext, ctx: ActionContext, found: RegExpExecArray) => void;
export interface Rule {
    state: RuleState[];
    pattern: RegExp;
    action: RuleAction;
    name: string;
}
export type BeforeAfterAction = (this: ActionContext, ctx: ActionContext, match: RegExpExecArray, rule: Rule) => void;
export type FinishAction = (this: ActionContext, ctx: ActionContext) => void;
export declare class Tokenizr {
    private _before;
    private _after;
    private _finish;
    private _rules;
    private _debug;
    private _input;
    private _len;
    private _eof;
    _pos: number;
    _line: number;
    _column: number;
    private _state;
    private _tag;
    private _transaction;
    _pending: Token[];
    _stopped: boolean;
    private _ctx;
    constructor();
    reset(): this;
    error(message: string): ParsingError;
    debug(debug: boolean): this;
    _log(msg: string): void;
    input(input: string): this;
    push(state: string): this;
    pop(): string;
    state(): string;
    state(state: string): this;
    tag(tag: string): this;
    tagged(tag: string): boolean;
    untag(tag: string): this;
    before(action: BeforeAfterAction): this;
    after(action: BeforeAfterAction): this;
    finish(action: FinishAction): this;
    rule(state: string, pattern: RegExp, action: RuleAction, name?: string): this;
    rule(pattern: RegExp, action: RuleAction, name?: string): this;
    _progress(from: number, until: number): void;
    _tokenize(): void;
    token(): Token | null;
    tokens(): Token[];
    peek(offset?: number): Token;
    skip(len?: number): this;
    consume(type: string, value?: unknown): Token;
    begin(): this;
    depth(): number;
    commit(): this;
    rollback(): this;
    alternatives(...alternatives: ((this: Tokenizr) => unknown)[]): unknown;
    static readonly Token: typeof Token;
    static readonly ParsingError: typeof ParsingError;
    static readonly ActionContext: typeof ActionContext;
}
