/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

import { IEmptyWindowBackupInfo } from '../node/backup.mjs';
import { IFolderBackupInfo, IWorkspaceBackupInfo } from '../common/backup.mjs';
export declare const IBackupMainService: import('../../instantiation/common/instantiation.mjs').ServiceIdentifier<IBackupMainService>;
export interface IBackupMainService {
	readonly _serviceBrand: undefined;
	isHotExitEnabled(): boolean;
	getEmptyWindowBackups(): IEmptyWindowBackupInfo[];
	registerWorkspaceBackup(workspaceInfo: IWorkspaceBackupInfo): string;
	registerWorkspaceBackup(workspaceInfo: IWorkspaceBackupInfo, migrateFrom: string): Promise<string>;
	registerFolderBackup(folderInfo: IFolderBackupInfo): string;
	registerEmptyWindowBackup(emptyWindowInfo: IEmptyWindowBackupInfo): string;
	/**
	 * All folders or workspaces that are known to have
	 * backups stored. This call is long running because
	 * it checks for each backup location if any backups
	 * are stored.
	 */
	getDirtyWorkspaces(): Promise<Array<IWorkspaceBackupInfo | IFolderBackupInfo>>;
}
