import type { CharacteristicValue, PlatformAccessory } from 'homebridge';
import { VirtualAccessoriesPlatform } from '../platform.js';
import { AccessoryConfiguration } from '../configuration/configurationAccessory.js';
import { Accessory } from './accessory.js';
import { TriggerableCompanionSensor } from '../sensors/companions/companionSensors.js';
import { Timer } from '../utils/timer.js';
/**
 * Switch - Accessory implementation
 */
export declare class Switch extends Accessory {
    static readonly ACCESSORY_TYPE_NAME: string;
    static readonly ON: boolean;
    static readonly OFF: boolean;
    private readonly stateStorageKey;
    private readonly timerStartTimeStorageKey;
    private readonly timerDurationStorageKey;
    private readonly timerIsRunningStorageKey;
    protected resetTimer?: Timer;
    protected companionSensor?: TriggerableCompanionSensor;
    protected muteLogging: boolean;
    protected states: {
        SwitchState: boolean;
        SensorState: number;
    };
    constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration);
    setOn(value: CharacteristicValue): Promise<void>;
    getOn(): Promise<CharacteristicValue>;
    protected getJsonState(): string;
    protected getAccessoryTypeName(): string;
    static getStateName(state: boolean): string;
    private determineSensorState;
    private setupResetTimer;
    private createCompanionSensor;
    private restoreRunningTimer;
    private onTimerExpired;
}
