export declare enum TokenKind { VARIABLE = 0, STRING = 1, TEMPLATE_STRING = 2, WORD = 3, INT = 4, FLOAT = 5, OPEN_PARENTHESIS = 6, CLOSE_PARENTHESIS = 7, OPERATOR = 8, COMMA = 9, EOF = 10 } export declare enum TSTokenKind { STRING = 0, EXPRESSION = 1 } export type TSToken = { kind: TSTokenKind.EXPRESSION; tokens: Token[]; } | { kind: TSTokenKind.STRING; tokens: Token; }; export interface BaseToken { start: number; length: number; } export interface NormalToken extends BaseToken { value: string; kind: Exclude; } export interface TemplateToken extends BaseToken { value: TSToken[]; kind: TokenKind.TEMPLATE_STRING; } export type Token = NormalToken | TemplateToken; export type Expression = string; export declare function makeToken(input: T extends TokenKind.TEMPLATE_STRING ? TSToken[] : string, kind: T, start: number, length?: number): Token; export interface GenBinding { source: string; target: string; }