/**
 *
 */
export declare enum TokenKind {
    AND = "TOKEN_AND",
    COLON = "TOKEN_COLON",
    COMMA = "TOKEN_COMMA",
    CURRENT = "TOKEN_CURRENT_VALUE",
    CURRENT_KEY = "TOKEN_CURRENT_KEY",// non-standard, default `#`
    DDOT = "TOKEN_DDOT",
    DOT = "TOKEN_DOT",
    DOUBLE_QUOTE_STRING = "TOKEN_DOUBLE_QUOTE_STRING",
    EOF = "TOKEN_EOF",
    EQ = "TOKEN_EQ",
    ERROR = "TOKEN_ERROR",
    FALSE = "TOKEN_FALSE",
    FILTER = "TOKEN_FILTER_START",
    FUNCTION = "TOKEN_FUNCTION",
    GE = "TOKEN_GE",
    GT = "TOKEN_GT",
    INDEX = "TOKEN_INDEX",
    KEY = "TOKEN_KEY",// non-standard, default `~<name>`
    KEY_DOUBLE_QUOTE_STRING = "TOKEN_KEY_DOUBLE_QUOTE_STRING",// non-standard, `~"<name>"`
    KEY_SINGLE_QUOTE_STRING = "TOKEN_KEY_SINGLE_QUOTE_STRING",// non-standard, `~'<name>'`
    KEYS = "TOKEN_KEYS",// non-standard, default `~`
    KEYS_FILTER = "TOKEN_KEYS_FILTER",// non-standard, `~?<expression>`
    LBRACKET = "TOKEN_LBRACKET",
    LE = "TOKEN_LE",
    LG = "TOKEN_LG",
    LPAREN = "TOKEN_LPAREN",
    LT = "TOKEN_LT",
    NAME = "TOKEN_NAME",
    NE = "TOKEN_NE",
    NOT = "TOKEN_NOT",
    NULL = "TOKEN_NULL",
    NUMBER = "NUMBER",
    OR = "TOKEN_OR",
    RBRACKET = "TOKEN_RBRACKET",
    ROOT = "TOKEN_ROOT",
    RPAREN = "TOKEN_RPAREN",
    SINGLE_QUOTE_STRING = "TOKEN_SINGLE_QUOTE_STRING",
    TRUE = "TOKEN_TRUE",
    WILD = "TOKEN_WILD"
}
/**
 *
 */
export declare class Token {
    readonly kind: TokenKind;
    readonly value: string;
    readonly index: number;
    readonly input: string;
    constructor(kind: TokenKind, value: string, index: number, input: string);
}
export declare const EOF: Token;
/**
 *
 */
export declare class TokenStream {
    #private;
    private tokens;
    constructor(tokens: Token[]);
    get current(): Token;
    get peek(): Token;
    next(): Token;
    backup(): void;
    expect(kind: TokenKind): void;
    expectPeek(kind: TokenKind): void;
    expectPeekNot(kind: TokenKind, message: string): void;
}
