import type { Service } from 'homebridge'; /** All HomeKit services exposed by the security system accessory. */ export interface ServiceRegistry { mainService: Service; accessoryInfoService: Service; tripSwitchService: Service; tripHomeSwitchService: Service; tripAwaySwitchService: Service; tripNightSwitchService: Service; tripOverrideSwitchService: Service; armingLockSwitchService: Service; armingLockHomeSwitchService: Service; armingLockAwaySwitchService: Service; armingLockNightSwitchService: Service; modeHomeSwitchService: Service; modeAwaySwitchService: Service; modeNightSwitchService: Service; modeOffSwitchService: Service; modeAwayExtendedSwitchService: Service; modePauseSwitchService: Service; customTripHomeSwitchServices: Service[]; customTripAwaySwitchServices: Service[]; customTripNightSwitchServices: Service[]; audioSwitchService: Service; armingMotionSensorService: Service; trippedMotionSensorService: Service; triggeredMotionSensorService: Service; triggeredResetMotionSensorService: Service; } /** Keys of ServiceRegistry whose value is a single Service (not Service[]). */ export type SingleServiceKey = { [K in keyof ServiceRegistry]: ServiceRegistry[K] extends Service[] ? never : K; }[keyof ServiceRegistry];