import type { ServiceType } from '@homebridge/hap-client';
import type { Socket } from 'socket.io';
import { HapClient } from '@homebridge/hap-client';
import NodeCache from 'node-cache';
import { ConfigService } from '../../core/config/config.service.js';
import { JsonFileStoreService } from '../../core/fs/json-file-store.service.js';
import { HomebridgeIpcService } from '../../core/homebridge-ipc/homebridge-ipc.service.js';
import { Logger } from '../../core/logger/logger.service.js';
import { MatterService } from '../../core/matter/matter.interfaces.js';
export declare class AccessoriesService {
    private readonly configService;
    private readonly logger;
    private readonly homebridgeIpcService;
    private readonly jsonStore;
    hapClient: HapClient;
    accessoriesCache: NodeCache;
    private matterMonitoringActive;
    private matterUpdateListener;
    private matterMonitoringStartPromise;
    private hapMonitorPromise;
    private activeClients;
    private clientSessions;
    private matterAccessories;
    private matterRequests;
    private matterDispatcherInstalled;
    constructor(configService: ConfigService, logger: Logger, homebridgeIpcService: HomebridgeIpcService, jsonStore: JsonFileStoreService);
    private getChildBridgePins;
    connect(client: Socket): Promise<void>;
    private ensureHapMonitor;
    private refreshCharacteristics;
    loadAccessories(): Promise<ServiceType[]>;
    getAccessory(uniqueId: string): Promise<MatterService | ServiceType>;
    private getMatterAccessory;
    setAccessoryCharacteristic(uniqueId: string, characteristicType: string, value: number | boolean | string): Promise<ServiceType>;
    getAccessoryLayout(username: string): Promise<any>;
    saveAccessoryLayout(user: string, layout: Record<string, unknown>): Promise<Record<string, unknown>>;
    resetInstancePool(): void;
    private parseMatterUniqueId;
    private buildMatterUniqueId;
    private waitForMatterEvent;
    private attemptMatterEvent;
    private ensureMatterDispatcher;
    private ensureMatterMonitoringStarted;
    private startMatterMonitoring;
    private loadMatterAccessories;
    private transformMatterAccessory;
    private handleMatterStateUpdate;
    private handleMatterControl;
}
