import { OnApplicationBootstrap } from '@nestjs/common'; import { AccessoryConfig, HomebridgeConfig, HomebridgeUiBridgeConfig, PlatformConfig } from '../../core/config/config.interfaces.js'; 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 { MatterConfig } from '../../core/matter/matter.interfaces.js'; import { SchedulerService } from '../../core/scheduler/scheduler.service.js'; import { BackupService } from '../backup/backup.service.js'; import { ChildBridgesService } from '../child-bridges/child-bridges.service.js'; import { PluginsService } from '../plugins/plugins.service.js'; export interface ConfigEditorRestartInfo { config: T; affectedBridges: Awaited>; } export declare class ConfigEditorService implements OnApplicationBootstrap { private readonly logger; private readonly configService; private readonly schedulerService; private readonly pluginsService; private readonly homebridgeIpcService; private readonly childBridgesService; private readonly backupService; private readonly jsonStore; private readonly ready; private resolveReady; constructor(logger: Logger, configService: ConfigService, schedulerService: SchedulerService, pluginsService: PluginsService, homebridgeIpcService: HomebridgeIpcService, childBridgesService: ChildBridgesService, backupService: BackupService, jsonStore: JsonFileStoreService); onApplicationBootstrap(): Promise; private start; private scheduleConfigBackupCleanup; getConfigFile(): Promise; private assertRestartCommandsSafe; private normaliseConfig; updateConfigFile(config: HomebridgeConfig): Promise; private mutateConfigFile; getConfigForPlugin(pluginName: string): Promise<(PlatformConfig | AccessoryConfig)[]>; updateConfigForPlugin(pluginName: string, pluginConfig: Record[]): Promise[]>; getPropertyForUi(property: string): Promise; setPropertyForUi(property: string, value: any): Promise; setPropertiesForUi(properties: Record): Promise; private applyPropertyToPluginConfig; private findOrCreateUiConfigBlock; setAccessoryControlInstanceBlacklist(value: string[]): Promise; getPluginsHideUpdatesFor(): Promise; setPluginsHideUpdatesFor(value: string[]): Promise; getPluginsHideChildBridgeSetupFor(): Promise; setPluginsHideChildBridgeSetupFor(value: string[]): Promise; getBridge(username: string): Promise; private updateBridgeProperty; setBridgeHideHapAlert(username: string, value: boolean): Promise; setBridgeHideMatterAlert(username: string, value: boolean): Promise; setBridgeScheduledRestartCron(username: string, value: string | null): Promise; disablePlugin(pluginName: string): Promise; enablePlugin(pluginName: string): Promise; private buildRestartInfo; updateConfigFileWithRestartInfo(config: HomebridgeConfig): Promise>; updateConfigForPluginWithRestartInfo(pluginName: string, pluginConfig: Record[]): Promise[]>>; disablePluginWithRestartInfo(pluginName: string): Promise>; enablePluginWithRestartInfo(pluginName: string): Promise>; listConfigBackups(): Promise<{ id: string; timestamp: Date; file: string; }[]>; getConfigBackup(backupId: number): Promise; deleteConfigBackup(backupId: number): Promise; deleteAllConfigBackups(): Promise; private ensureBackupPathExists; cleanupConfigBackups(): Promise; private migrateConfigBackups; generatePin(): string; generateUsername(): string; private removeEmpty; private cleanUpUiConfig; getMatterPortRange(): Promise<{ start?: number; end?: number; }>; setMatterPortRange(value: { start?: number; end?: number; }): Promise; private validateMatterPortRange; getMatterConfig(): Promise; updateMatterConfig(matterConfig: MatterConfig): Promise; setMatterEnabled(enabled: boolean, restart?: boolean, externalsOnly?: boolean): Promise<{ enabled: boolean; externalsOnly: boolean; }>; deleteMatterConfig(): Promise; getHapEnabled(): Promise<{ enabled: boolean; externalsOnly: boolean; disableIdentifyingMaterial: boolean; }>; setHapEnabled(enabled: boolean, restart?: boolean, externalsOnly?: boolean, disableIdentifyingMaterial?: boolean): Promise<{ enabled: boolean; externalsOnly: boolean; disableIdentifyingMaterial: boolean; }>; private validateMatterConfig; }