UNPKG

homebridge-config-ui-x

Version:

A web based management, configuration and control platform for Homebridge.

63 lines (62 loc) 2.59 kB
import type { MultipartFile } from '@fastify/multipart'; import type { FastifyReply } from 'fastify'; import { EventEmitter } from 'node:events'; import { StreamableFile } from '@nestjs/common'; import { ConfigService } from '../../core/config/config.service.js'; import { JsonFileStoreService } from '../../core/fs/json-file-store.service.js'; import { HomebridgeIpcService } from '../../core/homebridge-ipc/homebridge-ipc.service.js'; import { Logger } from '../../core/logger/logger.service.js'; import { SchedulerService } from '../../core/scheduler/scheduler.service.js'; import { PluginsService } from '../plugins/plugins.service.js'; export declare class BackupService { private readonly configService; private readonly pluginsService; private readonly schedulerService; private readonly homebridgeIpcService; private readonly logger; private readonly jsonStore; private restoreDirectory; constructor(configService: ConfigService, pluginsService: PluginsService, schedulerService: SchedulerService, homebridgeIpcService: HomebridgeIpcService, logger: Logger, jsonStore: JsonFileStoreService); private readonly tarSafeFilter; private extractZipSafely; private reserveRestoreSlot; private assertNoSymlinks; scheduleInstanceBackups(): void; refreshBackupSchedule(): void; private createBackup; ensureScheduledBackupPath(): Promise<void>; runScheduledBackupJob(): Promise<void>; getNextBackupTime(): Promise<{ next: boolean | Date; }>; listScheduledBackups(): Promise<{ id: string; instanceId: string; timestamp: Date; fileName: string; size: string; maxBackupSize: number; maxBackupSizeText: any; }[]>; getScheduledBackup(backupId: string): Promise<StreamableFile>; deleteScheduledBackup(backupId: string): Promise<void>; restoreScheduledBackup(backupId: string): Promise<void>; downloadBackup(reply: FastifyReply): Promise<StreamableFile>; createBackupInDirectory(): Promise<void>; uploadBackupRestore(data: MultipartFile): Promise<void>; removeRestoreDirectory(): Promise<void>; triggerHeadlessRestore(): Promise<{ status: number; }>; restoreFromBackup(client: EventEmitter, autoRestart?: boolean): Promise<{ status: number; }>; uploadHbfxRestore(data: MultipartFile): Promise<void>; restoreHbfxBackup(client: EventEmitter): Promise<{ status: number; }>; postBackupRestoreRestart(): { status: number; }; private checkBridgeBindConfig; }