import { BackupTarget } from '../enums';

export interface BackupResult {
  fileName: string;
  filePath: string;
  fileSize: number;
}

export type ProgressCallback = (percent: number, message: string) => void;

export interface BackupHandler {
  readonly target: BackupTarget;
  execute(outputDir: string, onProgress: ProgressCallback): Promise<BackupResult>;
}

export const BACKUP_HANDLER_TOKEN = 'BACKUP_HANDLER';
