import { PlatformAccessory } from 'homebridge';
import { UnifiAccess } from '../UnifiAccess';
import { UnifiAccessClient } from '../UnifiAccessClient';
import { UnifiAccessPlatform } from '../UnifiAccessPlatform.js';
import { Device } from './Device.js';
export declare namespace Door {
    const create: (platform: UnifiAccessPlatform, client: UnifiAccessClient, accessory: PlatformAccessory, device: UnifiAccess.Device) => Promise<Lock | GarageDoor>;
}
declare class Lock extends Device<UnifiAccess.Door> {
    static readonly create: (platform: UnifiAccessPlatform, client: UnifiAccessClient, accessory: PlatformAccessory, device: UnifiAccess.Device) => Promise<Lock>;
    private readonly targetState;
    private readonly currentState;
    private constructor();
    update(door: UnifiAccess.Door): void;
    doClose(): Promise<void>;
    onMessage(msg: UnifiAccess.Message, platform: UnifiAccessPlatform): void;
}
declare class GarageDoor extends Device<UnifiAccess.Door> {
    static readonly create: (platform: UnifiAccessPlatform, client: UnifiAccessClient, accessory: PlatformAccessory, device: UnifiAccess.Device) => Promise<GarageDoor>;
    private readonly currentState;
    private readonly targetState;
    private constructor();
    update(door: UnifiAccess.Door): void;
    doClose(): Promise<void>;
    onMessage(msg: UnifiAccess.Message, platform: UnifiAccessPlatform): void;
}
export {};
//# sourceMappingURL=Door.d.ts.map