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';
}
