@webarray/esphome-native-api
Version:
TypeScript/Node.js client for ESPHome native API with encryption and deep sleep support
100 lines • 3.72 kB
TypeScript
/**
* 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