import { VSBufferReadable, VSBufferReadableStream } from "../../../../base/common/buffer.js";
import { CancellationToken } from "../../../../base/common/cancellation.js";
import { IWorkingCopyIdentifier, IWorkingCopyBackupMeta } from "@codingame/monaco-vscode-a4683c2b-a0d2-5112-96ba-eedc605346d2-common/vscode/vs/workbench/services/workingCopy/common/workingCopy";
import { IResolvedWorkingCopyBackup } from "./workingCopyBackup.js";
export declare const IWorkingCopyBackupService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<IWorkingCopyBackupService>;
export interface IWorkingCopyBackupService {
    readonly _serviceBrand: undefined;
    hasBackups(): Promise<boolean>;
    hasBackupSync(identifier: IWorkingCopyIdentifier, versionId?: number): boolean;
    getBackups(): Promise<readonly IWorkingCopyIdentifier[]>;
    resolve<T extends IWorkingCopyBackupMeta>(identifier: IWorkingCopyIdentifier): Promise<IResolvedWorkingCopyBackup<T> | undefined>;
    backup(identifier: IWorkingCopyIdentifier, content?: VSBufferReadable | VSBufferReadableStream, versionId?: number, meta?: IWorkingCopyBackupMeta, token?: CancellationToken): Promise<void>;
    discardBackup(identifier: IWorkingCopyIdentifier, token?: CancellationToken): Promise<void>;
    discardBackups(filter?: {
        except: IWorkingCopyIdentifier[];
    }): Promise<void>;
}
