import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event"; import { IMarkdownString } from "@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent"; import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri"; import { ITextModel, ITextSnapshot } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/model"; import { IResolvableEditorModel } from "@codingame/monaco-vscode-api/vscode/vs/platform/editor/common/editor"; export interface ITextModelContentProvider { /** * Given a resource, return the content of the resource as `ITextModel`. */ provideTextContent(resource: URI): Promise | null; } export interface ITextEditorModel extends IResolvableEditorModel { /** * Emitted when the text model is about to be disposed. */ readonly onWillDispose: Event; /** * Provides access to the underlying `ITextModel`. */ readonly textEditorModel: ITextModel | null; /** * Creates a snapshot of the model's contents. */ createSnapshot(this: IResolvedTextEditorModel): ITextSnapshot; createSnapshot(this: ITextEditorModel): ITextSnapshot | null; /** * Signals if this model is readonly or not. */ isReadonly(): boolean | IMarkdownString; /** * The language id of the text model if known. */ getLanguageId(): string | undefined; /** * Find out if this text model has been disposed. */ isDisposed(): boolean; } export interface IResolvedTextEditorModel extends ITextEditorModel { /** * Same as ITextEditorModel#textEditorModel, but never null. */ readonly textEditorModel: ITextModel; } export declare function isResolvedTextEditorModel(model: ITextEditorModel): model is IResolvedTextEditorModel;