import { Event } from "../../../../base/common/event.js";
import { IDisposable } from "../../../../base/common/lifecycle.js";
import { URI } from "../../../../base/common/uri.js";
import { IWorkingCopy, IWorkingCopyIdentifier } from "@codingame/monaco-vscode-a4683c2b-a0d2-5112-96ba-eedc605346d2-common/vscode/vs/workbench/services/workingCopy/common/workingCopy";
import { IWorkingCopySaveEvent } from "@codingame/monaco-vscode-working-copy-service-override/vscode/vs/workbench/services/workingCopy/common/workingCopyService";
export declare const IWorkingCopyService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<IWorkingCopyService>;
export interface IWorkingCopyService {
    readonly _serviceBrand: undefined;
    readonly onDidRegister: Event<IWorkingCopy>;
    readonly onDidUnregister: Event<IWorkingCopy>;
    readonly onDidChangeDirty: Event<IWorkingCopy>;
    readonly onDidChangeContent: Event<IWorkingCopy>;
    readonly onDidSave: Event<IWorkingCopySaveEvent>;
    readonly dirtyCount: number;
    readonly dirtyWorkingCopies: readonly IWorkingCopy[];
    readonly modifiedCount: number;
    readonly modifiedWorkingCopies: readonly IWorkingCopy[];
    readonly hasDirty: boolean;
    isDirty(resource: URI, typeId?: string): boolean;
    readonly workingCopies: readonly IWorkingCopy[];
    registerWorkingCopy(workingCopy: IWorkingCopy): IDisposable;
    has(identifier: IWorkingCopyIdentifier): boolean;
    has(resource: URI): boolean;
    get(identifier: IWorkingCopyIdentifier): IWorkingCopy | undefined;
    getAll(resource: URI): readonly IWorkingCopy[] | undefined;
}
