import { ITokenConfig as ITokenConfigBase, TokenType as TokenTypeBase } from 'chevrotain';
export { Lexer } from 'chevrotain';
export type GmlLexerMode = 'code' | 'string' | 'multilineDoubleString' | 'multilineSingleString' | 'template';
export interface TokenType<Name extends string = string> extends TokenTypeBase {
    name: Name;
}
export interface ITokenConfig<Name extends string = string> extends ITokenConfigBase {
    name: Name;
    push_mode?: GmlLexerMode;
}
export declare function createToken<Name extends string = string>(config: ITokenConfig<Name>): TokenType<Name>;
export declare function tokenListToObject<T extends TokenType[]>(tokens: T): {
    [Name in T[number]['name']]: TokenType<Name>;
};
//# sourceMappingURL=tokens.lib.d.ts.map