import { Characteristic, CharacteristicValue, Nullable, PlatformAccessory, Service } from 'homebridge';
import nunjucks from 'nunjucks';
import { tasmotaPlatform } from './tasmotaPlatform.js';
/**
 * 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.
 */
interface Subscription {
    event: string;
    callback: any;
}
export declare class TasmotaService {
    readonly platform: tasmotaPlatform;
    readonly accessory: PlatformAccessory;
    protected readonly uniq_id: string;
    service?: Service;
    protected characteristic?: Characteristic;
    protected device_class: string;
    statusSubscribe?: Subscription;
    availabilitySubscribe?: Subscription;
    fakegato: string;
    nunjucksEnvironment: nunjucks.Environment;
    protected uuid: string;
    constructor(platform: tasmotaPlatform, accessory: PlatformAccessory, uniq_id: string);
    enableFakegato(): void;
    enableStatus(): void;
    deviceClassToHKCharacteristic(device_class: string): any;
    refresh(): void;
    statusUpdate(topic: string, message: Buffer): void;
    /**
     * Handle "LWT" Last Will and Testament messages from Tasmota
     * These are sent when the device is no longer available from the MQTT server.
     */
    availabilityUpdate(topic: string, message: Buffer): void;
    delta(value1: Nullable<CharacteristicValue> | undefined, value2: Nullable<CharacteristicValue> | undefined): boolean;
    parseValue(valueTemplate: string, value: string): string;
}
export declare function isTrue(value: string | boolean | number): boolean;
export {};
