import { Detachable, ValueCallback } from './common';
import { ILogger } from './Logger';
import { UnifiAccess } from './UnifiAccess';
export declare class UnifiAccessClient {
    private readonly config;
    private readonly logger;
    private readonly emitter;
    private socket?;
    private _state;
    constructor(config: UnifiAccessClient.Config, logger: ILogger);
    get connected(): boolean;
    start(): Promise<void>;
    close(): Promise<void>;
    private readonly timeouts;
    private timeout;
    private connect;
    on(event: 'message', handler: ValueCallback<UnifiAccess.Message>): Detachable;
    listDevices(): Promise<UnifiAccess.Device[]>;
    listDoors(): Promise<UnifiAccess.Door[]>;
    unlockDoor(id: string): Promise<void>;
    identifyDevice(type: UnifiAccess.Device['type'], id: string): Promise<void>;
    private rest;
    private restUrl;
    private wsUrl;
}
export declare namespace UnifiAccessClient {
    type Config = {
        host: string;
        port: number;
        token: string;
    };
}
//# sourceMappingURL=UnifiAccessClient.d.ts.map