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 { Trigger } from './triggers/trigger.js';
/**
 * Sensor - Abstract accessory
 */
export declare abstract class BinarySensor extends Accessory {
    static readonly ON: boolean;
    static readonly OFF: boolean;
    static readonly NORMAL_INACTIVE: string;
    static readonly TRIGGERED_ACTIVE: string;
    static readonly NORMAL: number;
    static readonly TRIGGERED: number;
    protected trigger: Trigger | undefined;
    protected eventDetected: WithUUID<{
        new (): Characteristic;
    }>;
    protected states: {
        SensorState: number;
    };
    constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration);
    getTrigger(): Trigger;
    getSensorState(): number;
    protected abstract getService(): WithUUID<typeof Service>;
    protected abstract getEventDetectedCharacteristic(): WithUUID<{
        new (): Characteristic;
    }>;
    getEventDetected(): Promise<CharacteristicValue>;
    protected getJsonState(): string;
    static getStateName(state: number): string;
    /**
     * This method is called by this sensor's trigger
     */
    triggerSensorState(sensorState: number, trigger: Trigger, isLoggingDisabled?: boolean): Promise<void>;
}
