import type { Systeminformation } from 'systeminformation';
import { HttpService } from '@nestjs/axios';
import { ConfigService } from '../../core/config/config.service';
import { HomebridgeIpcService } from '../../core/homebridge-ipc/homebridge-ipc.service';
import { Logger } from '../../core/logger/logger.service';
import { PluginsService } from '../plugins/plugins.service';
import { ServerService } from '../server/server.service';
export declare enum HomebridgeStatus {
    OK = "ok",
    UP = "up",
    DOWN = "down"
}
export interface HomebridgeStatusUpdate {
    status: HomebridgeStatus;
    paired?: null | boolean;
    setupUri?: null | string;
    name?: string;
    username?: string;
    pin?: string;
}
export declare class StatusService {
    private httpService;
    private logger;
    private configService;
    private pluginsService;
    private serverService;
    private homebridgeIpcService;
    private statusCache;
    private dashboardLayout;
    private homebridgeStatus;
    private homebridgeStatusChange;
    private cpuLoadHistory;
    private memoryUsageHistory;
    private memoryInfo;
    private rpiGetThrottledMapping;
    constructor(httpService: HttpService, logger: Logger, configService: ConfigService, pluginsService: PluginsService, serverService: ServerService, homebridgeIpcService: HomebridgeIpcService);
    private getCpuLoadPoint;
    private getMemoryUsagePoint;
    private getCpuLoadPointAlt;
    private getCpuTemp;
    private getCpuTempLegacy;
    private getCpuTempAlt;
    getCurrentNetworkUsage(netInterfaces?: string[]): Promise<{
        net: Systeminformation.NetworkStatsData;
        point: number;
    }>;
    getDashboardLayout(): Promise<any>;
    setDashboardLayout(layout: any): Promise<{
        status: string;
    }>;
    getServerCpuInfo(): Promise<{
        cpuTemperature: {
            main: number;
            cores: any[];
            max: number;
        };
        currentLoad: number;
        cpuLoadHistory: number[];
    }>;
    getServerMemoryInfo(): Promise<{
        mem: Systeminformation.MemData;
        memoryUsageHistory: number[];
    }>;
    getServerUptimeInfo(): Promise<{
        time: Systeminformation.TimeData;
        processUptime: number;
    }>;
    getHomebridgePairingPin(): Promise<{
        pin: string;
        setupUri: string;
        paired: boolean;
    }>;
    getHomebridgeStatus(): Promise<{
        status: HomebridgeStatus;
        consolePort: number;
        name: string;
        port: number;
        pin: string;
        setupUri: string;
        packageVersion: any;
        paired: boolean;
    }>;
    watchStats(client: any): Promise<void>;
    private getHomebridgeStats;
    checkHomebridgeStatus(): Promise<HomebridgeStatus>;
    private getDefaultInterface;
    private getOsInfo;
    private getGlibcVersion;
    getHomebridgeServerInfo(): Promise<{
        serviceUser: string;
        homebridgeConfigJsonPath: string;
        homebridgeStoragePath: string;
        homebridgeInsecureMode: boolean;
        homebridgeCustomPluginPath: string;
        homebridgePluginPath: string;
        homebridgeRunningInDocker: boolean;
        homebridgeRunningInSynologyPackage: boolean;
        homebridgeRunningInPackageMode: boolean;
        homebridgeServiceMode: boolean;
        nodeVersion: string;
        os: Systeminformation.OsData;
        glibcVersion: string;
        time: Systeminformation.TimeData;
        network: {};
    }>;
    getHomebridgeVersion(): Promise<import("../plugins/types").HomebridgePlugin>;
    getNodeJsVersionInfo(): Promise<unknown>;
    getRaspberryPiThrottledStatus(): Promise<{}>;
}
