import { EventEmitter } from 'node:events';
import 'source-map-support/register';
import { CharacteristicType, ResourceRequestType, ServiceType } from './interfaces';
import { HapMonitor } from './monitor';
export * from './interfaces';
export declare class HapClient extends EventEmitter {
    private bonjour;
    private browser;
    private discoveryInProgress;
    private logger;
    private pin;
    private debugEnabled;
    private config;
    private instances;
    private hiddenServices;
    private hiddenCharacteristics;
    private resetInstancePoolTimeout;
    private startDiscoveryTimeout;
    private hapMonitor;
    constructor(opts: {
        pin: string;
        logger?: any;
        config: any;
    });
    private logMessage;
    debug(msg: string): void;
    info(msg: string): void;
    warn(msg: string): void;
    error(msg: string): void;
    resetInstancePool(): void;
    refreshInstances(): void;
    private startDiscovery;
    private checkInstanceConnection;
    private getAccessories;
    monitorCharacteristics(services?: ServiceType[]): Promise<HapMonitor>;
    getAllServices(): Promise<ServiceType[]>;
    getService(iid: number): Promise<ServiceType>;
    getServiceByName(serviceName: string): Promise<ServiceType>;
    refreshServiceCharacteristics(service: ServiceType): Promise<ServiceType>;
    getCharacteristic(service: ServiceType, iid: number): Promise<CharacteristicType>;
    setCharacteristicByType(service: ServiceType, type: string, value: number | string | boolean): Promise<CharacteristicType>;
    setCharacteristic(service: ServiceType, iid: number, value: number | string | boolean): Promise<CharacteristicType>;
    getResource(service: ServiceType, body: ResourceRequestType): Promise<any>;
    private humanizeString;
    destroy(): Promise<void>;
}
