import type { languages } from 'monaco-editor/esm/vs/editor/editor.api.js'; import { ELanguage } from '../../constants'; export interface IToken { type: string; start: number; } declare class CalcState implements languages.IState { isComments: boolean; clone(): languages.IState; equals(other: languages.IState): boolean; /** * @param isComments 是否是在多行注释中 */ constructor(isComments: boolean); } export declare class CalcToken implements languages.IToken { scopes: string; startIndex: number; constructor(scopes: string, startIndex: number); } export declare class TokenProvider implements languages.TokensProvider { version: ELanguage; inComments: boolean; setInComments(v: boolean): void; getInitialState(): languages.IState; tokenize(line: string, state: CalcState): languages.ILineTokens; constructor(version: ELanguage); } export declare const v1TokenProvider: TokenProvider; export declare const v2TokenProvider: TokenProvider; export {};