import type { CharacteristicValue, PlatformAccessory } from 'homebridge';
import { VirtualAccessoriesPlatform } from '../platform.js';
import { AccessoryConfiguration } from '../configuration/configurationAccessory.js';
import { Accessory } from './accessory.js';
import { UpdatableObstruction } from './updatableObstruction.js';
/**
 * GarageDoor - Accessory implementation
 */
export declare class GarageDoor extends Accessory implements UpdatableObstruction {
    static readonly ACCESSORY_TYPE_NAME: string;
    static readonly OPEN: number;
    static readonly CLOSED: number;
    static readonly OPENING: number;
    static readonly CLOSING: number;
    static readonly STOPPED: number;
    private static readonly DEFAULT_TIMEOUT_SECS;
    private readonly stateStorageKey;
    private transitionTimerId;
    private states;
    constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration);
    getCurrentDoorState(): Promise<CharacteristicValue>;
    setTargetDoorState(value: CharacteristicValue): Promise<void>;
    getTargetDoorState(): Promise<CharacteristicValue>;
    getObstructionDetected(): Promise<CharacteristicValue>;
    protected getJsonState(): string;
    protected getAccessoryTypeName(): string;
    static getStateName(state: number): string;
    updateObstruction(value: boolean, accessoryId: string): void;
}
