import type { Position } from 'vscode-languageserver-types'; import type { TextDocument } from 'vscode-languageserver-textdocument'; import type { JSONDocument, LanguageService as JSONLanguageService } from 'vscode-json-languageservice'; import type { Stylesheet, LanguageService as CSSLanguageService } from 'vscode-css-languageservice'; import type { IHTMLDataProvider } from 'vscode-html-languageservice'; import type { PublicApi } from 'stylelint'; import type { Token } from '../internal'; export interface TexvcLocation { offset: number; line: number; column: number; } declare interface Texvcjs { check(input: string, options?: { usemhchem?: boolean; }): { status: '+'; } | { status: 'C'; } | { status: 'F' | 'S'; error: { message: string; location: { start: TexvcLocation; end: TexvcLocation; }; }; }; } export declare const loadTexvcjs: () => Texvcjs | null; export declare const loadJsonLSP: () => JSONLanguageService | null; export declare const loadCssLSP: () => CSSLanguageService | null; export declare const loadHtmlData: () => IHTMLDataProvider | null; export declare const loadStylelint: () => PublicApi | null; /** embedded document */ declare class EmbeddedDocument implements TextDocument { #private; languageId: string; lineCount: number; pre: string; uri: string; version: number; /** * @param id language ID * @param root root token * @param token current token * @param pre padding before the content * @param post padding after the content */ constructor(id: string, root: Token, token: Token, pre?: string, post?: string); /** 原始文本 */ getContent(): string; /** @implements */ getText(): string; /** @implements */ positionAt(offset: number): Position; /** @implements */ offsetAt({ line, character }: Position): number; } /** embedded JSON document */ export declare class EmbeddedJSONDocument extends EmbeddedDocument { jsonDoc: JSONDocument; /** * @param root root token * @param token current token */ constructor(root: Token, token: Token); } /** embedded CSS document */ export declare class EmbeddedCSSDocument extends EmbeddedDocument { styleSheet: Stylesheet; /** * @param root root token * @param token current token */ constructor(root: Token, token: Token); getContent(): string; } export {};