import type * as monaco from 'monaco-editor'; export interface IWordRange { /** * The index where the word starts. */ readonly start: number; /** * The index where the word ends. */ readonly end: number; } export interface IMirrorModel { readonly uri: monaco.Uri; readonly version: number; readonly eol: string; getValue(): string; getLinesContent(): string[]; getLineCount(): number; getLineContent(lineNumber: number): string; getLineWords(lineNumber: number, wordDefinition: RegExp): monaco.editor.IWordAtPosition[]; createWordIterator(wordDefinition: RegExp): Iterator; getWordUntilPosition(position: monaco.IPosition, wordDefinition: RegExp): monaco.editor.IWordAtPosition; getValueInRange(range: monaco.IRange): string; getWordAtPosition(position: monaco.IPosition, wordDefinition: RegExp): monaco.Range | null; offsetAt(position: monaco.IPosition): number; positionAt(offset: number): monaco.IPosition; getValue(): string; getFullModelRange(): monaco.IRange; } export interface IWorkerContext { /** * A proxy to the main thread host object. */ host: H; /** * Get all available mirror models in this worker. */ getMirrorModels(): IMirrorModel[]; } export interface LanguageWorker { provideReferences?(model: IMirrorModel, position: monaco.Position, context: monaco.languages.ReferenceContext): monaco.languages.ProviderResult; provideRenameEdits?(model: IMirrorModel, position: monaco.Position, newName: string): monaco.languages.ProviderResult; resolveRenameLocation?(model: IMirrorModel, position: monaco.Position): monaco.languages.ProviderResult; provideSignatureHelp?(model: IMirrorModel, position: monaco.Position, context: monaco.languages.SignatureHelpContext): monaco.languages.ProviderResult; provideHover?(model: IMirrorModel, position: monaco.Position): monaco.languages.ProviderResult; provideDocumentSymbols?(model: IMirrorModel): monaco.languages.ProviderResult; provideDocumentHighlights?(model: IMirrorModel, position: monaco.Position): monaco.languages.ProviderResult; provideDefinition?(model: IMirrorModel, position: monaco.Position): monaco.languages.ProviderResult; provideImplementation?(model: IMirrorModel, position: monaco.Position): monaco.languages.ProviderResult; provideTypeDefinition?(model: IMirrorModel, position: monaco.Position): monaco.languages.ProviderResult; provideCodeLenses?(model: IMirrorModel): monaco.languages.ProviderResult; resolveCodeLens?(model: IMirrorModel, codeLens: monaco.languages.CodeLens): monaco.languages.ProviderResult; provideCodeActions?(model: IMirrorModel, range: monaco.Range, context: monaco.languages.CodeActionContext): monaco.languages.ProviderResult; provideDocumentFormattingEdits?(model: IMirrorModel, options: monaco.languages.FormattingOptions): monaco.languages.ProviderResult; provideDocumentRangeFormattingEdits?(model: IMirrorModel, range: monaco.Range, options: monaco.languages.FormattingOptions): monaco.languages.ProviderResult; provideOnTypeFormattingEdits?(model: IMirrorModel, position: monaco.Position, ch: string, options: monaco.languages.FormattingOptions): monaco.languages.ProviderResult; provideLinks?(model: IMirrorModel): monaco.languages.ProviderResult; provideCompletionItems?(model: IMirrorModel, position: monaco.Position, context: monaco.languages.CompletionContext): monaco.languages.ProviderResult; resolveCompletionItem?(item: monaco.languages.CompletionItem): monaco.languages.ProviderResult; completionTriggerCharacters?: string[]; provideDocumentColors?(model: IMirrorModel): monaco.languages.ProviderResult; provideColorPresentations?(model: IMirrorModel, colorInfo: monaco.languages.IColorInformation): monaco.languages.ProviderResult; provideFoldingRanges?(model: IMirrorModel, context: monaco.languages.FoldingContext): monaco.languages.ProviderResult; provideDeclaration?(model: IMirrorModel, position: monaco.Position): monaco.languages.ProviderResult; provideSelectionRanges?(model: IMirrorModel, positions: monaco.Position[]): monaco.languages.ProviderResult; provideDocumentSemanticTokens?(model: IMirrorModel, lastResultId: string): monaco.languages.ProviderResult; provideDocumentRangeSemanticTokens?(model: IMirrorModel, range: monaco.Range): monaco.languages.ProviderResult; doValidation?(uri: string): monaco.languages.ProviderResult; } export interface MonacoWorker extends LanguageWorker { getModels(): IMirrorModel[]; getModel(uri: string): IMirrorModel; getText(uri: string): string; } export declare class MonacoWorker { ctx: IWorkerContext; options: any; constructor(_ctx: IWorkerContext, _options: any); provide(provider: string, uri: string, ...args: any[]): monaco.languages.ProviderResult; resolve(resolver: string, uri: string, ...args: any[]): monaco.languages.ProviderResult; }