import type { MultipartFile } from '@fastify/multipart';
import type { Systeminformation } from 'systeminformation';
import { ServiceUnavailableException } from '@nestjs/common';
import { ConfigService } from '../../core/config/config.service';
import { HomebridgeIpcService } from '../../core/homebridge-ipc/homebridge-ipc.service';
import { Logger } from '../../core/logger/logger.service';
import { AccessoriesService } from '../accessories/accessories.service';
import { ConfigEditorService } from '../config-editor/config-editor.service';
import { HomebridgeMdnsSettingDto } from './server.dto';
export declare class ServerService {
    private readonly configService;
    private readonly configEditorService;
    private readonly accessoriesService;
    private readonly homebridgeIpcService;
    private readonly logger;
    private serverServiceCache;
    private readonly accessoryId;
    private readonly accessoryInfoPath;
    setupCode: string | null;
    paired: boolean;
    constructor(configService: ConfigService, configEditorService: ConfigEditorService, accessoriesService: AccessoriesService, homebridgeIpcService: HomebridgeIpcService, logger: Logger);
    private deleteSingleDeviceAccessories;
    private deleteSingleDevicePairing;
    restartServer(): Promise<{
        ok: boolean;
        command: string;
        restartingUI: boolean;
    }>;
    resetHomebridgeAccessory(): Promise<void>;
    getDevicePairings(): Promise<any[]>;
    getDevicePairingById(deviceId: string, configFile?: any): Promise<any>;
    deleteDevicePairing(id: string, resetPairingInfo: boolean): Promise<{
        ok: boolean;
    }>;
    deleteDevicesPairing(bridges: {
        id: string;
        resetPairingInfo: boolean;
    }[]): Promise<{
        ok: boolean;
    }>;
    deleteDeviceAccessories(id: string): Promise<void>;
    deleteDevicesAccessories(bridges: {
        id: string;
    }[]): Promise<void>;
    getCachedAccessories(): Promise<any[]>;
    deleteCachedAccessory(uuid: string, cacheFile: string): Promise<{
        ok: boolean;
    }>;
    deleteCachedAccessories(accessories: {
        uuid: string;
        cacheFile: string;
    }[]): Promise<{
        ok: boolean;
    }>;
    deleteAllCachedAccessories(): Promise<{
        ok: boolean;
    }>;
    getSetupCode(): Promise<string | null>;
    private generateSetupCode;
    getBridgePairingInformation(): Promise<ServiceUnavailableException | {
        displayName: any;
        pincode: any;
        setupCode: string;
        isPaired: boolean;
    }>;
    getSystemNetworkInterfaces(): Promise<Systeminformation.NetworkInterfacesData[]>;
    getHomebridgeNetworkInterfaces(): Promise<string[]>;
    getHomebridgeMdnsSetting(): Promise<HomebridgeMdnsSettingDto>;
    setHomebridgeMdnsSetting(setting: HomebridgeMdnsSettingDto): Promise<void>;
    setHomebridgeNetworkInterfaces(adapters: string[]): Promise<void>;
    lookupUnusedPort(): Promise<{
        port: number;
    }>;
    getHomebridgePort(): Promise<{
        port: number;
    }>;
    getUsablePorts(): Promise<{
        start?: number;
        end?: number;
    }>;
    setHomebridgeName(name: string): Promise<void>;
    setHomebridgePort(port: number): Promise<void>;
    setUsablePorts(value: {
        start?: number;
        end?: number;
    }): Promise<void>;
    uploadWallpaper(data: MultipartFile): Promise<void>;
    deleteWallpaper(): Promise<void>;
    private nodeVersionChanged;
}
