/** * Eufy WebSocket API Station Events * * Contains TypeScript interfaces for station-level event payloads in the Eufy Security WebSocket API. * * See: eufy-security-ws/docs/api_events.md for event schema details. */ import { STATION_EVENTS, StationEventType } from "./constants"; import { JSONValue } from "../types/shared"; import { EVENT_SOURCES } from "../common/constants"; import { StationPropertyName } from "./properties"; export type StationEventSource = typeof EVENT_SOURCES.STATION; export interface BaseStationEventPayload { source: StationEventSource; event: TEventName; } export interface BaseStationEventPayloadWithSerial extends BaseStationEventPayload { serialNumber: string; } export interface StationAddedEventPayload extends BaseStationEventPayload { station: string; } export interface StationRemovedEventPayload extends BaseStationEventPayload { station: string; } export interface StationConnectedEventPayload extends BaseStationEventPayloadWithSerial { } export interface StationDisconnectedEventPayload extends BaseStationEventPayloadWithSerial { } export interface StationConnectionErrorEventPayload extends BaseStationEventPayloadWithSerial { } export interface StationPropertyChangedEventPayload extends BaseStationEventPayloadWithSerial { name: StationPropertyName; value: JSONValue; } export interface StationAlarmEventPayload extends BaseStationEventPayloadWithSerial { alarmType: string; } export interface StationAlarmDelayEventPayload extends BaseStationEventPayloadWithSerial { alarmType: string; } export interface StationAlarmArmedEventPayload extends BaseStationEventPayloadWithSerial { alarmType: string; } export interface StationAlarmArmDelayEventPayload extends BaseStationEventPayloadWithSerial { alarmType: string; } export interface StationGuardModeChangedEventPayload extends BaseStationEventPayloadWithSerial { guardMode: number; } export interface StationCurrentModeChangedEventPayload extends BaseStationEventPayloadWithSerial { currentMode: number; } export interface StationImageDownloadedEventPayload extends BaseStationEventPayloadWithSerial { filename: string; path: string; } export interface StationDatabaseQueryLatestEventPayload extends BaseStationEventPayloadWithSerial { data: JSONValue[]; } export interface StationDatabaseQueryLocalEventPayload extends BaseStationEventPayloadWithSerial { returnCode: number; data: JSONValue[]; } export interface StationDatabaseQueryByDateEventPayload extends BaseStationEventPayloadWithSerial { returnCode: number; data: JSONValue[]; } export interface StationDatabaseCountByDateEventPayload extends BaseStationEventPayloadWithSerial { returnCode: number; data: JSONValue[]; } export interface StationDatabaseDeleteEventPayload extends BaseStationEventPayloadWithSerial { returnCode: number; failedIds: unknown[]; } export interface StationCommandResultEventPayload extends BaseStationEventPayloadWithSerial { command: string; returnCode: number; returnCodeName: string; customData?: JSONValue; } export type StationEventPayload = StationAddedEventPayload | StationRemovedEventPayload | StationConnectedEventPayload | StationDisconnectedEventPayload | StationConnectionErrorEventPayload | StationPropertyChangedEventPayload | StationAlarmEventPayload | StationAlarmDelayEventPayload | StationAlarmArmedEventPayload | StationAlarmArmDelayEventPayload | StationGuardModeChangedEventPayload | StationCurrentModeChangedEventPayload | StationImageDownloadedEventPayload | StationDatabaseQueryLatestEventPayload | StationDatabaseQueryLocalEventPayload | StationDatabaseQueryByDateEventPayload | StationDatabaseCountByDateEventPayload | StationDatabaseDeleteEventPayload | StationCommandResultEventPayload; export type StationEventPayloadByType = Extract; export type StationEventListener = (event: StationEventPayloadByType) => void; export type AnyStationEventListener = (event: StationEventPayload) => void; //# sourceMappingURL=events.d.ts.map