import { Characteristic, CharacteristicValue, PlatformAccessory, Service, WithUUID } from "homebridge";
import { FreeAtHomeContext } from "./freeAtHomeContext.js";
import { FreeAtHomeHomebridgePlatform } from "./platform.js";
/** The abstract base class for all free&#64;home accessories.*/
export declare abstract class FreeAtHomeAccessory {
    protected readonly platform: FreeAtHomeHomebridgePlatform;
    protected readonly accessory: PlatformAccessory<FreeAtHomeContext>;
    /** The serial number consisting of the free&#64;home device serial and the channel ID. */
    protected readonly serialNumber: string;
    /**
     * Constructs a new free&#64;home accessory instance.
     * @param platform The free&#64;home Homebridge platform controlling the accessory
     * @param accessory The platform accessory.
     */
    constructor(platform: FreeAtHomeHomebridgePlatform, accessory: PlatformAccessory<FreeAtHomeContext>);
    /**
     * Asynchonously updates accessory characteristics from a datapoint.
     * @param datapoint The updated data point.
     * @param value A string representing the new value.
     */
    abstract updateDatapoint(datapoint: string, value: string): void;
    protected doUpdateDatapoint(acccessoryDisplayType: string, service: Service, characteristic: WithUUID<new () => Characteristic>, characteristicValue: CharacteristicValue): void;
}
//# sourceMappingURL=freeAtHomeAccessory.d.ts.map