import type { Logging } from 'homebridge'; import type { CharacteristicConstructor } from '../interfaces/hap-types-interface.js'; import { SecurityState } from '../types/security-state-type.js'; import type { ServiceRegistry } from '../interfaces/service-registry-interface.js'; import type { SystemState } from '../interfaces/system-state-interface.js'; import type { SecuritySystemOptions } from '../interfaces/options-interface.js'; import type { StateHandler } from './state-handler.js'; import type { TimerManager } from '../timers/timer-manager.js'; import type { EventBusService } from '../services/event-bus-service.js'; import type { ServiceResult } from '../types/service-result-type.js'; /** * Handles all mode switches and the pause/extended switches. * Calls StateHandler directly (one-way dependency — no cycle). * Subscribes to bus events emitted by StateHandler to reset its own display state. */ export declare class SwitchHandler { private readonly services; private readonly state; private readonly options; private readonly Characteristic; private readonly log; private readonly timers; private readonly stateHandler; constructor(services: ServiceRegistry, state: SystemState, options: SecuritySystemOptions, Characteristic: CharacteristicConstructor, log: Logging, timers: TimerManager, stateHandler: StateHandler); /** Register bus listeners so StateHandler can signal display resets without importing this class. */ subscribeToStateEvents(bus: EventBusService): void; setModeSwitch(mode: SecurityState, value: boolean): number | null; setModeOffSwitch(value: boolean): number | null; setModeAwayExtendedSwitch(value: boolean): number | null; setModePauseSwitch(value: boolean): number | null; updateArmingLock(mode: string, value: boolean): ServiceResult; resetModeSwitches(): void; updateModeSwitches(): void; private logArmingLock; }