export declare const operatorMatcher: RegExp;
declare const workingTokens: readonly ["escapedSingleQuote", "escapedDoubleQuote", "escapedBackslash", "openSingleQuote", "closeSingleQuote", "openDoubleQuote", "closeDoubleQuote", "singleQuotedString", "doubleQuotedString", "bracedReference"];
declare const tokenNames: readonly ["space", "number", "string", "quoteMark", "operator", "openParenthesis", "closeParenthesis", "openBrace", "closeBrace", "reference", "argumentSeparator", "group"];
export declare type TokenTypeName = typeof tokenNames[number];
declare type WorkingTokenTypeName = TokenTypeName | typeof workingTokens[number];
export declare function isTokenName(token: string): token is TokenTypeName;
declare type DirtyToken = {
    type: WorkingTokenTypeName;
    value: string;
    start: number;
    end: number;
    opener?: DirtyToken;
    closer?: DirtyToken;
    members?: DirtyToken[];
};
export declare type Token = Omit<DirtyToken, "type" | "opener" | "closer" | "members"> & {
    type: TokenTypeName;
    opener?: Token;
    closer?: Token;
    members?: Token[];
};
export declare function tokenize(formula: string): Token;
export {};
