import type { PlatformAccessory } from "homebridge";
import { type HomebridgePluginLogging } from "homebridge-plugin-utils";
import { type RatgdoDevice } from "./ratgdo-types.js";
import type { RatgdoPlatform } from "./ratgdo-platform.js";
export interface EspHomeEvent {
    current_operation?: string;
    id: string;
    name?: string;
    position?: number;
    state: string;
    value?: string;
}
interface RatgdoHints {
    automationDimmer: boolean;
    automationSwitch: boolean;
    discoBattery: boolean;
    discoLaserSwitch: boolean;
    discoLedSwitch: boolean;
    discoVehicleArriving: boolean;
    discoVehicleLeaving: boolean;
    discoVehiclePresence: boolean;
    doorOpenOccupancyDuration: number;
    doorOpenOccupancySensor: boolean;
    konnectedPcwSwitch: boolean;
    konnectedStrobeSwitch: boolean;
    light: boolean;
    lock: boolean;
    lockoutSwitch: boolean;
    logLight: boolean;
    logMotion: boolean;
    logObstruction: boolean;
    logOpener: boolean;
    logVehiclePresence: boolean;
    motionOccupancyDuration: number;
    motionOccupancySensor: boolean;
    motionSensor: boolean;
    readOnly: boolean;
    showBatteryInfo: boolean;
}
export declare class RatgdoAccessory {
    private readonly accessory;
    private readonly api;
    private readonly config;
    readonly device: RatgdoDevice;
    private doorOccupancyTimer;
    private readonly hap;
    readonly hints: RatgdoHints;
    readonly log: HomebridgePluginLogging;
    private motionOccupancyTimer;
    private motionTimer;
    private obstructionTimer;
    private readonly platform;
    private readonly status;
    constructor(platform: RatgdoPlatform, accessory: PlatformAccessory, device: RatgdoDevice);
    private configureDevice;
    private configureHints;
    private configureInfo;
    private configureMqtt;
    private configureGarageDoor;
    private configureLight;
    private configureMotionSensor;
    private configureAutomationDoorPositionDimmer;
    private configureAutomationDoorSwitch;
    private configureDiscoBattery;
    private configureDiscoLaserSwitch;
    private configureDiscoLedSwitch;
    private configureDiscoVehicleArrivingContactSensor;
    private configureDiscoVehicleLeavingContactSensor;
    private configureDiscoVehiclePresenceOccupancySensor;
    private configureKonnectedPcwSwitch;
    private configureKonnectedStrobeSwitch;
    private configureAutomationLockoutSwitch;
    private configureDoorOpenOccupancySensor;
    private configureMotionOccupancySensor;
    private setDoorState;
    refresh(): void;
    updateState(event: EspHomeEvent): void;
    private command;
    private translateCurrentDoorState;
    private translateTargetDoorState;
    private doorCurrentStateBias;
    private doorTargetStateBias;
    private lockTargetStateBias;
    private hasFeature;
    private get name();
    private get accessoryName();
    private set accessoryName(value);
}
export {};
