import { CharacteristicValue } from 'homebridge';
import { LogMessageEvent, StateUpdateMessageEvent } from '../utils/eventsource.js';
import { BaseBlaQAccessory, BaseBlaQAccessoryConstructorParams } from './base.js';
type BlaQGarageDoorAccessoryConstructorParams = BaseBlaQAccessoryConstructorParams & {
    type: 'garage' | 'cover';
};
/**
 * Platform Accessory
 * An instance of this class is created for each accessory your platform registers
 * Each accessory may expose multiple services of different service types.
 */
export declare class BlaQGarageDoorAccessory extends BaseBlaQAccessory {
    private garageDoorService;
    private state?;
    private position?;
    private targetPosition?;
    private currentOperation?;
    private obstructed?;
    private lockState;
    private lockType?;
    private coverType?;
    private preClosing?;
    constructor(args: BlaQGarageDoorAccessoryConstructorParams);
    private updateLockState;
    getLockState(): CharacteristicValue;
    private setLockState;
    getCurrentDoorState(): typeof this.platform.characteristic.CurrentDoorState.CLOSING | typeof this.platform.characteristic.CurrentDoorState.OPENING | typeof this.platform.characteristic.CurrentDoorState.CLOSED | typeof this.platform.characteristic.CurrentDoorState.OPEN | typeof this.platform.characteristic.CurrentDoorState.STOPPED;
    private setCurrentDoorState;
    private getHoldPositionState;
    private getCurrentPositionState;
    private updateCurrentDoorState;
    private setPreClosing;
    private setCurrentOperation;
    getCurrentPosition(): CharacteristicValue;
    private setCurrentPosition;
    getTargetDoorState(): CharacteristicValue;
    private setHoldPositionState;
    private setTargetDoorState;
    getTargetDoorPosition(): CharacteristicValue;
    private updateTargetDoorPosition;
    private setTargetDoorPosition;
    getObstructed(): CharacteristicValue;
    private setObstructed;
    handleStateEvent(stateEvent: StateUpdateMessageEvent): void;
    handleLogEvent(logEvent: LogMessageEvent): void;
}
export {};
