UNPKG

@webarray/esphome-native-api

Version:

TypeScript/Node.js client for ESPHome native API with encryption and deep sleep support

100 lines 3.72 kB
/** * AUTO-GENERATED FILE - DO NOT EDIT * Generated by scripts/generate-entity-types.js * * This file contains entity type definitions automatically extracted from proto files. * To regenerate, run: npm run generate:entity-types */ import type { EntityInfo, BinarySensorInfo, SensorInfo, SwitchInfo, LightInfo, StateUpdate, BinarySensorState, SensorState, SwitchState, TextSensorState } from './index'; /** * All possible entity types supported by ESPHome * Auto-generated from proto file */ export type EntityType = 'binary_sensor' | 'cover' | 'fan' | 'light' | 'sensor' | 'switch' | 'text_sensor' | 'camera' | 'climate' | 'number' | 'select' | 'siren' | 'lock' | 'button' | 'media_player' | 'alarm_control_panel' | 'text' | 'date' | 'time' | 'event' | 'valve' | 'datetime' | 'update'; /** * Map entity type string to entity info interface * Auto-generated from proto file */ export interface EntityTypeMap { binary_sensor: BinarySensorInfo; cover: EntityInfo; fan: EntityInfo; light: LightInfo; sensor: SensorInfo; switch: SwitchInfo; text_sensor: EntityInfo; camera: EntityInfo; climate: EntityInfo; number: EntityInfo; select: EntityInfo; siren: EntityInfo; lock: EntityInfo; button: EntityInfo; media_player: EntityInfo; alarm_control_panel: EntityInfo; text: EntityInfo; date: EntityInfo; time: EntityInfo; event: EntityInfo; valve: EntityInfo; datetime: EntityInfo; update: EntityInfo; } /** * Map entity type string to state interface * Auto-generated from proto file */ export interface EntityStateMap { binary_sensor: BinarySensorState; cover: StateUpdate; fan: StateUpdate; light: StateUpdate; sensor: SensorState; switch: SwitchState; text_sensor: TextSensorState; camera: StateUpdate; climate: StateUpdate; number: StateUpdate; select: StateUpdate; siren: StateUpdate; lock: StateUpdate; button: StateUpdate; media_player: StateUpdate; alarm_control_panel: StateUpdate; text: StateUpdate; date: StateUpdate; time: StateUpdate; event: StateUpdate; valve: StateUpdate; datetime: StateUpdate; update: StateUpdate; } /** * Get entity info type by entity type string */ export type EntityInfoByType<T extends EntityType> = EntityTypeMap[T]; /** * Get state type by entity type string */ export type EntityStateByType<T extends EntityType> = EntityStateMap[T]; /** * Helper to create discriminated union based on entity type */ export type EntityWithType<T extends EntityType> = EntityInfoByType<T> & { entityType: T; }; /** * All possible entity types as discriminated union * Auto-generated from proto file */ export type AnyEntity = EntityWithType<'binary_sensor'> | EntityWithType<'cover'> | EntityWithType<'fan'> | EntityWithType<'light'> | EntityWithType<'sensor'> | EntityWithType<'switch'> | EntityWithType<'text_sensor'> | EntityWithType<'camera'> | EntityWithType<'climate'> | EntityWithType<'number'> | EntityWithType<'select'> | EntityWithType<'siren'> | EntityWithType<'lock'> | EntityWithType<'button'> | EntityWithType<'media_player'> | EntityWithType<'alarm_control_panel'> | EntityWithType<'text'> | EntityWithType<'date'> | EntityWithType<'time'> | EntityWithType<'event'> | EntityWithType<'valve'> | EntityWithType<'datetime'> | EntityWithType<'update'>; /** * Array of all entity type strings * Useful for validation and iteration */ export declare const ALL_ENTITY_TYPES: readonly EntityType[]; /** * Check if a string is a valid entity type */ export declare function isValidEntityType(type: string): type is EntityType; //# sourceMappingURL=generated-entity-types.d.ts.map