import { Characteristic, CharacteristicValue, PlatformAccessory, Service, WithUUID } from "homebridge";
import { ConfigAccessory } from "../config/config-accessory";
import { AccessoryContext } from "../interfaces/accessory-context";
import { TexecomConnectPlatform } from "../texecom-connect-platform";
/**
 * Texecom Accessory
 */
export declare abstract class TexecomAccessory<T extends ConfigAccessory> {
    protected readonly accessory: PlatformAccessory<AccessoryContext<T>>;
    protected readonly config: T;
    protected readonly platform: TexecomConnectPlatform;
    protected readonly service: Service;
    protected readonly serviceCharacteristic: WithUUID<new () => Characteristic>;
    protected readonly serviceType: WithUUID<typeof Service>;
    protected state: CharacteristicValue;
    protected get characteristic(): Characteristic;
    constructor(platform: TexecomConnectPlatform, accessory: PlatformAccessory<AccessoryContext<T>>, serviceType: WithUUID<typeof Service>, serviceCharacteristic: WithUUID<new () => Characteristic>, state: CharacteristicValue);
    protected getCharacteristic(): CharacteristicValue;
    protected setCharacteristic(value: CharacteristicValue): void;
    protected abstract listener(value: CharacteristicValue): void;
}
