homebridge-config-ui-x
Version:
A web based management, configuration and control platform for Homebridge.
171 lines (170 loc) • 5.85 kB
TypeScript
import type { ReadStream } from 'node:fs';
import type { HomebridgeConfig, HomebridgeUiConfig } from './config.interfaces.js';
export declare class ConfigService {
name: string;
configPath: string;
storagePath: string;
customPluginPath: string;
strictPluginResolution: boolean;
secretPath: string;
authPath: string;
accessoryLayoutPath: string;
configBackupPath: string;
instanceBackupPath: string;
homebridgeInsecureMode: boolean;
homebridgeVersion: string;
runningHomebridgeModulePath: string;
minimumNodeVersion: string;
runningInDocker: boolean;
runningInSynologyPackage: boolean;
runningInPackageMode: boolean;
runningInLinux: boolean;
runningInFreeBSD: boolean;
canShutdownRestartHost: boolean;
enableTerminalAccess: boolean;
usePluginBundles: boolean;
recommendChildBridges: boolean;
runningOnRaspberryPi: boolean;
runningOnRaspbianImage: boolean;
startupScript: string;
dockerOfflineUpdate: boolean;
package: any;
hbStartupSettings: any;
setupWizardComplete: boolean;
customWallpaperHash: string;
hbServiceUiRestartRequired: boolean;
homebridgeConfig: HomebridgeConfig;
ui: HomebridgeUiConfig;
private bridgeFreeze;
private uiFreeze;
secrets: {
secretKey: string;
};
instanceId: string;
constructor();
parseConfig(homebridgeConfig: HomebridgeConfig): void;
uiSettings(authorized?: boolean): {
env: {
canShutdownRestartHost: boolean;
customWallpaperHash: string;
dockerOfflineUpdate: boolean;
featureFlags: Record<string, boolean>;
homebridgeVersion: string;
homebridgeInstanceName: string;
instanceId: string;
lang: string;
packageName: any;
packageVersion: any;
platform: NodeJS.Platform;
port: number;
setupWizardComplete: boolean;
scheduledBackupDisable: boolean;
scheduledBackupPath: string;
};
formAuth: boolean;
sessionTimeout: number;
sessionTimeoutInactivityBased: boolean;
lightingMode: "auto" | "light" | "dark";
serverTimestamp: string;
theme: string;
menuMode: "default" | "freeze";
} | {
env: {
enableAccessories: boolean;
enableTerminalAccess: boolean;
enableMdnsAdvertise: boolean;
nodeVersion: string;
recommendChildBridges: boolean;
runningInDocker: boolean;
runningInSynologyPackage: boolean;
runningInPackageMode: boolean;
runningInLinux: boolean;
runningInFreeBSD: boolean;
runningOnRaspberryPi: boolean;
runningOnRaspbianImage: boolean;
temperatureUnits: string;
temp: string;
log: {
maxSize: number;
truncateSize: number;
};
ssl: {
key: string;
cert: string;
pfx: string;
hasPassphrase: boolean;
selfSigned: boolean;
selfSignedHostnames: string[];
};
accessoryControl: {
debug: boolean;
instanceBlacklist: string[];
};
plugins: {
hideUpdatesFor: string[];
showBetasFor: string[];
hideChildBridgeSetupFor: string[];
};
nodeUpdatePolicy: "all" | "none" | "major";
homebridgeUpdatePolicy: "all" | "none" | "beta" | "major";
homebridgeUiUpdatePolicy: "all" | "none" | "beta" | "major";
scheduledRestartCron: string;
bridges: import("./config.interfaces.js").HomebridgeUiBridgeConfig[];
linux: {
shutdown: string;
restart: string;
};
terminal: {
persistence: boolean;
hideWarning: boolean;
bufferSize: any;
fontSize: string | number;
fontWeight: string | number;
lightingMode: "light" | "dark";
};
canShutdownRestartHost: boolean;
customWallpaperHash: string;
dockerOfflineUpdate: boolean;
featureFlags: Record<string, boolean>;
homebridgeVersion: string;
homebridgeInstanceName: string;
instanceId: string;
lang: string;
packageName: any;
packageVersion: any;
platform: NodeJS.Platform;
port: number;
setupWizardComplete: boolean;
scheduledBackupDisable: boolean;
scheduledBackupPath: string;
};
menuMode: "default" | "freeze";
wallpaper: string;
host: string;
proxyHost: string;
homebridgePackagePath: string;
disableServerMetricsMonitoring: boolean;
keepOrphans: any;
formAuth: boolean;
sessionTimeout: number;
sessionTimeoutInactivityBased: boolean;
lightingMode: "auto" | "light" | "dark";
serverTimestamp: string;
theme: string;
};
uiRestartRequired(): Promise<boolean>;
private freezeUiSettings;
private setConfigForDocker;
private setConfig;
private getSecrets;
private generateSecretToken;
private getInstanceId;
private getCustomWallpaperHash;
removeWallpaperCache(): void;
streamCustomWallpaper(): ReadStream;
private checkIfRunningOnRaspberryPi;
private checkIfRunningOnRaspbianImage;
getFeatureFlags(): Record<string, boolean>;
isMatterEnabled(): boolean;
getNodeUpdatePolicy(): 'all' | 'none' | 'major';
}