import type { Characteristic, CharacteristicValue, PlatformAccessory, Service, WithUUID } from 'homebridge';
import { VirtualAccessoriesPlatform } from '../platform.js';
import { AccessoryConfiguration } from '../configuration/configurationAccessory.js';
import { Accessory } from '../accessories/accessory.js';
import { UpdatableMeasurementSensor } from './updatableSensor.js';
/**
 * Sensor - Abstract accessory
 */
export declare abstract class MeasurementSensor extends Accessory implements UpdatableMeasurementSensor {
    protected valueMeasured: WithUUID<{
        new (): Characteristic;
    }>;
    protected states: {
        SensorValue: number;
        SensorUnits: string;
    };
    constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration);
    protected abstract getService(): WithUUID<typeof Service>;
    protected abstract getMeasurementCharacteristic(): WithUUID<{
        new (): Characteristic;
    }>;
    getValueMeasured(): Promise<CharacteristicValue>;
    protected abstract getDefaultValue(): number;
    protected getJsonState(): string;
    abstract updateMeasurementSensor(value: number, accessoryId: string): void;
}
