import type { FastifyRequest } from 'fastify';
import { Logger } from '../../core/logger/logger.service.js';
import { ChildBridgesService } from '../child-bridges/child-bridges.service.js';
import { HomebridgeMdnsSettingDto, HomebridgeNetworkInterfacesDto } from './server.dto.js';
import { ServerService } from './server.service.js';
export declare class ServerController {
    private readonly serverService;
    private readonly childBridgesService;
    private readonly logger;
    constructor(serverService: ServerService, childBridgesService: ChildBridgesService, logger: Logger);
    restartServer(): Promise<{
        ok: boolean;
        command: string;
        restartingUI: boolean;
    }>;
    restartChildBridge(deviceId: string): {
        ok: boolean;
    };
    stopChildBridge(deviceId: string): {
        ok: boolean;
    };
    startChildBridge(deviceId: string): {
        ok: boolean;
    };
    getBridgePairingInformation(): Promise<import("@nestjs/common").ServiceUnavailableException | {
        displayName: any;
        pincode: any;
        setupCode: string;
        isPaired: boolean;
    }>;
    resetHomebridgeAccessory(): Promise<void>;
    deleteAllCachedAccessories(): Promise<{
        ok: boolean;
    }>;
    getCachedAccessories(): Promise<any[]>;
    deleteCachedAccessory(uuid: string, cacheFile?: string): Promise<{
        ok: boolean;
    }>;
    deleteCachedAccessories(accessories?: {
        uuid: string;
        cacheFile: string;
    }[]): Promise<{
        ok: boolean;
    }>;
    getMatterAccessories(): Promise<import("../../core/matter/matter.interfaces.js").StoredMatterAccessory[]>;
    deleteMatterAccessory(deviceId: string, uuid: string): Promise<{
        ok: boolean;
    }>;
    deleteMatterAccessories(accessories?: {
        deviceId: string;
        uuid: string;
    }[]): Promise<{
        ok: boolean;
    }>;
    getDevicePairings(): Promise<any[]>;
    getDevicePairingById(deviceId: string): Promise<any>;
    deleteDevicePairing(deviceId: string, resetPairingInfo?: string): Promise<{
        ok: boolean;
    }>;
    deleteDeviceMatterConfig(deviceId: string): Promise<{
        ok: boolean;
    }>;
    deleteDevicesPairings(bridges?: {
        id: string;
        resetPairingInfo: boolean;
    }[]): Promise<{
        ok: boolean;
    }>;
    deleteDeviceAccessories(deviceId: string): Promise<void>;
    deleteDevicesAccessories(bridges?: {
        id: string;
        protocol?: 'hap' | 'matter' | 'both';
    }[]): Promise<void>;
    getNetworkOverview(): Promise<{
        entries: import("../../core/matter/matter.interfaces.js").NetworkOverviewEntry[];
        conflicts: string[];
    }>;
    lookupUnusedPort(): Promise<{
        port: number;
    }>;
    lookupUnusedMatterPort(): Promise<{
        port: number;
    }>;
    getSystemNetworkInterfaces(): Promise<import("systeminformation").Systeminformation.NetworkInterfacesData[]>;
    getHomebridgeNetworkInterfaces(): Promise<string[]>;
    setHomebridgeNetworkInterfaces(body: HomebridgeNetworkInterfacesDto): Promise<void>;
    getHomebridgeMdnsSetting(): Promise<HomebridgeMdnsSettingDto>;
    setHomebridgeMdnsSetting(body: HomebridgeMdnsSettingDto): Promise<void>;
    setHomebridgeName(body: {
        name: string;
    }): Promise<void>;
    getHomebridgePort(): Promise<{
        port: number;
    }>;
    setHomebridgePort(body: {
        port: number;
    }): Promise<void>;
    getUsablePort(): Promise<{
        start?: number;
        end?: number;
    }>;
    setUsablePorts(body: any): Promise<void>;
    uploadWallpaper(req: FastifyRequest): Promise<void>;
    uploadSslKeyCert(req: FastifyRequest): Promise<{
        ok: boolean;
        type: "keycert";
        keyPath: string;
        certPath: string;
        details?: string;
    }>;
    uploadSslPfx(req: FastifyRequest): Promise<{
        ok: boolean;
        type: "pfx";
        pfxPath: string;
        details?: string;
    }>;
    validateSsl(): Promise<{
        ok: boolean;
        valid: boolean;
        type: "off" | "selfsigned" | "keycert" | "pfx";
        details?: string;
    }>;
    generateSelfSigned(body: {
        hostnames?: string[];
        mode?: 'selfsigned' | 'keycert';
    }): Promise<{
        ok: boolean;
        type: "generated";
        mode: "keycert" | "selfsigned";
        keyPath?: string;
        certPath?: string;
        details?: string;
    }>;
    deleteWallpaper(): Promise<void>;
}
