import { HapClient, ServiceType } from '@homebridge/hap-client';
import { SmartHomeV1ExecuteRequestCommands, SmartHomeV1ExecuteResponseCommands, SmartHomeV1SyncDevices } from 'actions-on-google';
import { Subject } from 'rxjs';
import { PluginConfig } from './interfaces';
import { Log } from './logger';
import { Door } from './types/door';
import { Fan } from './types/fan';
import { Fanv2 } from './types/fan-v2';
import { GarageDoorOpener } from './types/garage-door-opener';
import { HeaterCooler } from './types/heater-cooler';
import { HumiditySensor } from './types/humidity-sensor';
import { Lightbulb } from './types/lightbulb';
import { LockMechanism } from './types/lock-mechanism';
import { SecuritySystem } from './types/security-system';
import { Switch } from './types/switch';
import { Television } from './types/television';
import { TemperatureSensor } from './types/temperature-sensor';
import { Thermostat } from './types/thermostat';
import { Window } from './types/window';
import { WindowCovering } from './types/window-covering';
export declare class Hap {
    socket: any;
    log: Log;
    pin: string;
    config: PluginConfig;
    hapClient: HapClient;
    services: ServiceType[];
    private startTimeout;
    private discoveryTimeout;
    private syncTimeout;
    ready: boolean;
    types: {
        Door: Door;
        Fan: Fan;
        Fanv2: Fanv2;
        GarageDoorOpener: GarageDoorOpener;
        HeaterCooler: HeaterCooler;
        HumiditySensor: HumiditySensor;
        Lightbulb: Lightbulb;
        LockMechanism: LockMechanism;
        Outlet: Switch;
        SecuritySystem: SecuritySystem;
        Switch: Switch;
        Television: Television;
        TemperatureSensor: TemperatureSensor;
        Thermostat: Thermostat;
        Window: Window;
        WindowCovering: WindowCovering;
    };
    reportStateSubject: Subject<unknown>;
    pendingStateReport: any[];
    evTypes: string[];
    instanceBlacklist: Array<string>;
    accessoryFilter: Array<string>;
    accessoryFilterInverse: boolean;
    accessorySerialFilter: Array<string>;
    constructor(socket: any, log: any, pin: string, config: PluginConfig);
    discover(): Promise<void>;
    waitForNoMoreDiscoveries: () => void;
    start(): Promise<void>;
    buildSyncResponse(): Promise<SmartHomeV1SyncDevices[]>;
    requestSync(): Promise<void>;
    query(devices: any): Promise<{}>;
    execute(commands: SmartHomeV1ExecuteRequestCommands[]): Promise<SmartHomeV1ExecuteResponseCommands[]>;
    getStatus(service: ServiceType): Promise<ServiceType>;
    loadAccessories(): Promise<ServiceType[]>;
    handleHapEvent(events: any): Promise<void>;
    processPendingStateReports(pendingStateReport: any): Promise<void>;
    sendFullStateReport(): Promise<void>;
    sendStateReport(states: any, requestId?: any): Promise<void>;
    destroy(): Promise<void>;
}
