/** Token type enum for all possible Token categories */
export declare enum TokenType {
    WORD = "WORD",
    STRING = "STRING",
    RESERVED_KEYWORD = "RESERVED_KEYWORD",
    RESERVED_LOGICAL_OPERATOR = "RESERVED_LOGICAL_OPERATOR",
    RESERVED_DEPENDENT_CLAUSE = "RESERVED_DEPENDENT_CLAUSE",
    RESERVED_BINARY_COMMAND = "RESERVED_BINARY_COMMAND",
    RESERVED_COMMAND = "RESERVED_COMMAND",
    RESERVED_JOIN_CONDITION = "RESERVED_JOIN_CONDITION",
    OPERATOR = "OPERATOR",
    BLOCK_START = "BLOCK_START",
    BLOCK_END = "BLOCK_END",
    LINE_COMMENT = "LINE_COMMENT",
    BLOCK_COMMENT = "BLOCK_COMMENT",
    NUMBER = "NUMBER",
    PLACEHOLDER = "PLACEHOLDER",
    EOF = "EOF"
}
/** Struct to store the most basic cohesive unit of language grammar */
export interface Token {
    value: string;
    type: TokenType;
    key?: string;
    whitespaceBefore?: string;
}
/**
 * For use as a "missing token"
 * e.g. in lookAhead and lookBehind to avoid dealing with null values
 */
export declare const EOF_TOKEN: {
    type: TokenType;
    value: string;
};
/** Special Unicode character to serve as a placeholder for tabular formats as \w whitespace is unavailable */
export declare const ZWS = "\u200B";
/** Checks if two tokens are equivalent */
export declare const testToken: (compareToken: Token) => (token: Token) => boolean;
/** Util object that allows for easy checking of Reserved Keywords */
export declare const isToken: {
    AS: (token: Token) => boolean;
    AND: (token: Token) => boolean;
    BETWEEN: (token: Token) => boolean;
    CASE: (token: Token) => boolean;
    CAST: (token: Token) => boolean;
    BY: (token: Token) => boolean;
    END: (token: Token) => boolean;
    FROM: (token: Token) => boolean;
    LIMIT: (token: Token) => boolean;
    SELECT: (token: Token) => boolean;
    SET: (token: Token) => boolean;
    TABLE: (token: Token) => boolean;
    WINDOW: (token: Token) => boolean;
    WITH: (token: Token) => boolean;
};
/** Checks if token is a Reserved Command or Reserved Binary Command */
export declare const isCommand: (token: Token) => boolean;
/** Checks if token is any Reserved Keyword or Command */
export declare const isReserved: (token: Token) => boolean;
