export declare type TokenOptions = {
    keyword?: string;
    beforeExpr?: boolean;
    startsExpr?: boolean;
    rightAssociative?: boolean;
    isLoop?: boolean;
    isAssign?: boolean;
    prefix?: boolean;
    postfix?: boolean;
    binop?: number;
};
export declare class TokenType {
    label: string;
    keyword?: string;
    beforeExpr: boolean;
    startsExpr: boolean;
    rightAssociative: boolean;
    isLoop: boolean;
    isAssign: boolean;
    prefix: boolean;
    postfix: boolean;
    binop: number | null;
    updateContext?: ((prevType: TokenType) => void) | null;
    constructor(label: string, conf?: TokenOptions);
}
export declare class KeywordTokenType extends TokenType {
    constructor(name: string, options?: TokenOptions);
}
export declare class BinopTokenType extends TokenType {
    constructor(name: string, prec: number);
}
export declare const types: {
    [name: string]: TokenType;
};
export declare const keywords: {
    break: KeywordTokenType;
    case: KeywordTokenType;
    catch: KeywordTokenType;
    continue: KeywordTokenType;
    debugger: KeywordTokenType;
    default: KeywordTokenType;
    do: KeywordTokenType;
    else: KeywordTokenType;
    finally: KeywordTokenType;
    for: KeywordTokenType;
    function: KeywordTokenType;
    if: KeywordTokenType;
    return: KeywordTokenType;
    switch: KeywordTokenType;
    throw: KeywordTokenType;
    try: KeywordTokenType;
    var: KeywordTokenType;
    let: KeywordTokenType;
    const: KeywordTokenType;
    while: KeywordTokenType;
    with: KeywordTokenType;
    new: KeywordTokenType;
    this: KeywordTokenType;
    super: KeywordTokenType;
    class: KeywordTokenType;
    extends: KeywordTokenType;
    export: KeywordTokenType;
    import: KeywordTokenType;
    yield: KeywordTokenType;
    null: KeywordTokenType;
    true: KeywordTokenType;
    false: KeywordTokenType;
    in: KeywordTokenType;
    instanceof: KeywordTokenType;
    typeof: KeywordTokenType;
    void: KeywordTokenType;
    delete: KeywordTokenType;
    async: KeywordTokenType;
    get: KeywordTokenType;
    set: KeywordTokenType;
    declare: KeywordTokenType;
    readonly: KeywordTokenType;
    abstract: KeywordTokenType;
    static: KeywordTokenType;
    public: KeywordTokenType;
    private: KeywordTokenType;
    protected: KeywordTokenType;
    as: KeywordTokenType;
    enum: KeywordTokenType;
    type: KeywordTokenType;
    implements: KeywordTokenType;
};
