import type { ReservedSymbol } from './reservedNames'; import { type SymbolicBinaryOperator, type SymbolicOperator } from './operators'; export declare const tokenTypes: readonly ["LBrace", "LBracket", "RBrace", "RBracket", "LParen", "RParen", "BasePrefixedNumber", "DocString", "Error", "MultiLineComment", "Number", "Operator", "RegexpShorthand", "ReservedSymbol", "SingleLineComment", "Shebang", "string", "Symbol", "Whitespace"]; export type TokenType = typeof tokenTypes[number]; type GenericToken = [T, V] | [T, V, SourceCodeInfo]; export type ErrorToken = ['Error', string, SourceCodeInfo | undefined, string]; export type LBraceToken = GenericToken<'LBrace', '{'>; export type LBracketToken = GenericToken<'LBracket', '['>; export type LParenToken = GenericToken<'LParen', '('>; export type RBraceToken = GenericToken<'RBrace', '}'>; export type RBracketToken = GenericToken<'RBracket', ']'>; export type RParenToken = GenericToken<'RParen', ')'>; export type BasePrefixedNumberToken = GenericToken<'BasePrefixedNumber'>; export type MultiLineCommentToken = GenericToken<'MultiLineComment'>; export type NumberToken = GenericToken<'Number'>; export type OperatorToken = GenericToken<'Operator', T>; export type RegexpShorthandToken = GenericToken<'RegexpShorthand'>; export type ReservedSymbolToken = GenericToken<'ReservedSymbol', T>; export type SingleLineCommentToken = GenericToken<'SingleLineComment'>; export type ShebangToken = GenericToken<'Shebang'>; export type StringToken = GenericToken<'string'>; export type DocStringToken = GenericToken<'DocString'>; export type SymbolToken = GenericToken<'Symbol', T>; export type WhitespaceToken = GenericToken<'Whitespace'>; export type Token = LBraceToken | LBracketToken | LParenToken | RBraceToken | RBracketToken | RParenToken | BasePrefixedNumberToken | DocStringToken | ErrorToken | MultiLineCommentToken | NumberToken | OperatorToken | RegexpShorthandToken | ReservedSymbolToken | SingleLineCommentToken | ShebangToken | StringToken | SymbolToken | WhitespaceToken; export type TokenDescriptor = [length: number, token?: T]; export interface SourceCodeInfo { position: { line: number; column: number; }; code: string; filePath?: string; } export declare function isSymbolToken(token: Token | undefined | undefined, symbolName?: T): token is SymbolToken; export declare function assertSymbolToken(token: Token | undefined | undefined, symbolName?: T): asserts token is SymbolToken; export declare function asSymbolToken(token: Token | undefined | undefined, symbolName?: T): SymbolToken; export declare function isReservedSymbolToken(token: Token | undefined | undefined, symbolName?: T): token is ReservedSymbolToken; export declare function assertReservedSymbolToken(token: Token | undefined | undefined, symbolName?: T): asserts token is ReservedSymbolToken; export declare function asReservedSymbolToken(token: Token | undefined | undefined, symbolName?: T): ReservedSymbolToken; export declare function isShebangToken(token: Token | undefined): token is SingleLineCommentToken; export declare function isSingleLineCommentToken(token: Token | undefined): token is SingleLineCommentToken; export declare function isMultiLineCommentToken(token: Token | undefined): token is MultiLineCommentToken; export declare function isOperatorToken(token: Token | undefined | undefined, operatorName?: T): token is OperatorToken; export declare function assertOperatorToken(token: Token | undefined | undefined, operatorName?: T): asserts token is OperatorToken; export declare function asOperatorToken(token: Token | undefined | undefined, operatorName?: T): OperatorToken; export declare function isWhitespaceToken(token: Token | undefined): token is WhitespaceToken; export declare function assertWhitespaceToken(token: Token | undefined): asserts token is WhitespaceToken; export declare function asWhitespaceToken(token: Token | undefined): WhitespaceToken; export declare function isNumberToken(token: Token | undefined): token is NumberToken; export declare function assertNumberToken(token: Token | undefined): asserts token is NumberToken; export declare function asNumberToken(token: Token | undefined): NumberToken; export declare function isBasePrefixedNumberToken(token: Token | undefined): token is BasePrefixedNumberToken; export declare function assertBasePrefixedNumberToken(token: Token | undefined): asserts token is BasePrefixedNumberToken; export declare function asBasePrefixedNumberToken(token: Token | undefined): BasePrefixedNumberToken; export declare function isLParenToken(token: Token | undefined): token is LParenToken; export declare function assertLParenToken(token: Token | undefined): asserts token is LParenToken; export declare function asLParenToken(token: Token | undefined): LParenToken; export declare function isRParenToken(token: Token | undefined): token is RParenToken; export declare function assertRParenToken(token: Token | undefined): asserts token is RParenToken; export declare function asRParenToken(token: Token | undefined): RParenToken; export declare function isLBracketToken(token: Token | undefined): token is LBracketToken; export declare function assertLBracketToken(token: Token | undefined): asserts token is LBracketToken; export declare function asLBracketToken(token: Token | undefined): LBracketToken; export declare function isRBracketToken(token: Token | undefined): token is RBracketToken; export declare function assertRBracketToken(token: Token | undefined): asserts token is RBracketToken; export declare function asRBracketToken(token: Token | undefined): RBracketToken; export declare function isLBraceToken(token: Token | undefined): token is LBraceToken; export declare function assertLBraceToken(token: Token | undefined): asserts token is LBraceToken; export declare function asLBraceToken(token: Token | undefined): LBraceToken; export declare function isRBraceToken(token: Token | undefined): token is RBraceToken; export declare function assertRBraceToken(token: Token | undefined): asserts token is RBraceToken; export declare function asRBraceToken(token: Token | undefined): RBraceToken; export declare function isStringToken(token: Token | undefined): token is StringToken; export declare function assertStringToken(token: Token | undefined): asserts token is StringToken; export declare function asStringToken(token: Token | undefined): StringToken; export declare function isDocStringToken(token: Token | undefined): token is DocStringToken; export declare function isRegexpShorthandToken(token: Token | undefined): token is RegexpShorthandToken; export declare function assertRegexpShorthandToken(token: Token | undefined): asserts token is RegexpShorthandToken; export declare function asRegexpShorthandToken(token: Token | undefined): RegexpShorthandToken; export declare function isA_BinaryOperatorToken(token: Token | undefined): token is OperatorToken; export declare function assertA_BinaryOperatorToken(token: Token | undefined): asserts token is OperatorToken; export declare function asA_BinaryOperatorToken(token: Token | undefined): OperatorToken; export {};