homebridge-config-ui-x
Version:
A web based management, configuration and control platform for Homebridge.
172 lines (171 loc) • 5.22 kB
TypeScript
import type { ReadStream } from 'fs-extra';
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;
minimumNodeVersion: string;
serviceMode: boolean;
runningInDocker: boolean;
runningInSynologyPackage: boolean;
runningInPackageMode: boolean;
runningInLinux: boolean;
runningInFreeBSD: boolean;
canShutdownRestartHost: boolean;
enableTerminalAccess: boolean;
usePnpm: boolean;
usePluginBundles: boolean;
recommendChildBridges: boolean;
runningOnRaspberryPi: boolean;
startupScript: string;
dockerOfflineUpdate: boolean;
package: any;
setupWizardComplete: boolean;
customWallpaperHash: string;
hbServiceUiRestartRequired: boolean;
homebridgeConfig: HomebridgeConfig;
ui: {
name: string;
port: number;
host?: '::' | '0.0.0.0' | string;
auth: 'form' | 'none';
theme: string;
lightingMode: 'auto' | 'light' | 'dark';
menuMode?: 'default' | 'freeze';
sudo?: boolean;
restart?: string;
lang?: string;
log?: {
method: 'file' | 'custom' | 'systemd' | 'native';
command?: string;
path?: string;
service?: string;
};
ssl?: {
key?: string;
cert?: string;
pfx?: string;
passphrase?: string;
};
accessoryControl?: {
debug?: boolean;
instanceBlacklist?: string[];
};
temp?: string;
tempUnits?: string;
wallpaper?: string;
noFork?: boolean;
linux?: {
shutdown?: string;
restart?: string;
};
standalone?: boolean;
debug?: boolean;
proxyHost?: string;
sessionTimeout?: number;
homebridgePackagePath?: string;
scheduledBackupPath?: string;
scheduledBackupDisable?: boolean;
disableServerMetricsMonitoring?: boolean;
};
private bridgeFreeze;
private uiFreeze;
secrets: {
secretKey: string;
};
instanceId: string;
constructor();
parseConfig(homebridgeConfig: HomebridgeConfig): void;
uiSettings(authorized?: boolean): {
env: {
canShutdownRestartHost: boolean;
customWallpaperHash: string;
dockerOfflineUpdate: boolean;
homebridgeVersion: string;
homebridgeInstanceName: string;
instanceId: string;
lang: string;
packageName: any;
packageVersion: any;
platform: NodeJS.Platform;
port: number;
serviceMode: boolean;
setupWizardComplete: boolean;
};
formAuth: boolean;
lightingMode: "auto" | "light" | "dark";
serverTimestamp: string;
theme: string;
menuMode: "default" | "freeze";
} | {
env: {
enableAccessories: boolean;
enableTerminalAccess: boolean;
nodeVersion: string;
recommendChildBridges: boolean;
runningInDocker: boolean;
runningInSynologyPackage: boolean;
runningInPackageMode: boolean;
runningInLinux: boolean;
runningInFreeBSD: boolean;
runningOnRaspberryPi: boolean;
temperatureUnits: string;
usePnpm: boolean;
canShutdownRestartHost: boolean;
customWallpaperHash: string;
dockerOfflineUpdate: boolean;
homebridgeVersion: string;
homebridgeInstanceName: string;
instanceId: string;
lang: string;
packageName: any;
packageVersion: any;
platform: NodeJS.Platform;
port: number;
serviceMode: boolean;
setupWizardComplete: boolean;
};
wallpaper: string;
formAuth: boolean;
lightingMode: "auto" | "light" | "dark";
serverTimestamp: string;
theme: string;
menuMode: "default" | "freeze";
};
uiRestartRequired(): Promise<boolean>;
private freezeUiSettings;
private setConfigForDocker;
private setConfigForServiceMode;
private getSecrets;
private generateSecretToken;
private getInstanceId;
private getCustomWallpaperHash;
removeWallpaperCache(): void;
streamCustomWallpaper(): ReadStream;
private checkIfRunningOnRaspberryPi;
}
export interface HomebridgeConfig {
bridge: {
username: string;
pin: string;
name: string;
port: number;
advertiser?: 'avahi' | 'resolved' | 'ciao' | 'bonjour-hap';
bind?: string | string[];
};
mdns?: {
interface?: string | string[];
};
platforms: Record<string, any>[];
accessories: Record<string, any>[];
plugins?: string[];
disabledPlugins?: string[];
}