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 { Disposable, IReference } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle";
import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
import { IResolvedTextEditorModel } from "@codingame/monaco-vscode-model-service-override/vscode/vs/editor/common/services/resolverService";
import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation";
import { ILabelService } from "@codingame/monaco-vscode-api/vscode/vs/platform/label/common/label.service";
import { IRevertOptions, ISaveOptions } from "@codingame/monaco-vscode-api/vscode/vs/workbench/common/editor";
import { ICustomEditorModel } from "@codingame/monaco-vscode-view-common-service-override/vscode/vs/workbench/contrib/customEditor/common/customEditor";
import { IExtensionService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service";
import { ITextFileService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/textfile/common/textfiles.service";
export declare class CustomTextEditorModel extends Disposable implements ICustomEditorModel {
    readonly viewType: string;
    private readonly _resource;
    private readonly _model;
    private readonly textFileService;
    private readonly _labelService;
    static create(instantiationService: IInstantiationService, viewType: string, resource: URI): Promise<CustomTextEditorModel>;
    private readonly _textFileModel;
    private readonly _onDidChangeOrphaned;
    readonly onDidChangeOrphaned: Event<void>;
    private readonly _onDidChangeReadonly;
    readonly onDidChangeReadonly: Event<void>;
    constructor(viewType: string, _resource: URI, _model: IReference<IResolvedTextEditorModel>, textFileService: ITextFileService, _labelService: ILabelService, extensionService: IExtensionService);
    get resource(): URI;
    get name(): string;
    isReadonly(): boolean | IMarkdownString;
    get backupId(): undefined;
    get canHotExit(): boolean;
    isDirty(): boolean;
    isOrphaned(): boolean;
    private readonly _onDidChangeDirty;
    readonly onDidChangeDirty: Event<void>;
    private readonly _onDidChangeContent;
    readonly onDidChangeContent: Event<void>;
    revert(options?: IRevertOptions): Promise<void>;
    saveCustomEditor(options?: ISaveOptions): Promise<URI | undefined>;
    saveCustomEditorAs(resource: URI, targetResource: URI, options?: ISaveOptions): Promise<boolean>;
}
