import { BaseSuccessResponseModel } from '../../api/models/api-response.model'; import { ChannelCategory, DeviceCategory, PropertyCategory } from '../../devices/devices.constants'; import { SpaceClimateRoleEntity } from '../entities/space-climate-role.entity'; import { SpaceCoversRoleEntity } from '../entities/space-covers-role.entity'; import { SpaceLightingRoleEntity } from '../entities/space-lighting-role.entity'; import { SpaceSensorRoleEntity } from '../entities/space-sensor-role.entity'; import { SpaceEntity } from '../entities/space.entity'; import type { CoversState, RoleCoversState } from '../services/space-covers-state.service'; import type { OtherLightsState, RoleAggregatedState, SpaceLightingState } from '../services/space-lighting-state.service'; import { ClimateMode, ClimateRole, CoversMode, CoversRole, IntentCategory, LightingMode, LightingRole, QuickActionType, SensorRole, SpaceRoomCategory, SpaceType, SpaceZoneCategory, SuggestionType } from '../spaces.constants'; export declare class SpaceResponseModel extends BaseSuccessResponseModel { data: SpaceEntity; } export declare class SpacesResponseModel extends BaseSuccessResponseModel { data: SpaceEntity[]; } export declare class BulkAssignmentDataModel { deviceIds: string[]; displayIds: string[]; } export declare class BulkAssignmentResultDataModel { success: boolean; devicesAssigned: number; displaysAssigned: number; } export declare class BulkAssignmentResponseModel extends BaseSuccessResponseModel { data: BulkAssignmentResultDataModel; } export declare class ProposedSpaceDataModel { name: string; type: SpaceType; category: SpaceRoomCategory | SpaceZoneCategory | null; deviceIds: string[]; deviceCount: number; } export declare class ProposedSpacesResponseModel extends BaseSuccessResponseModel { data: ProposedSpaceDataModel[]; } export declare class LightingIntentResultDataModel { success: boolean; affectedDevices: number; failedDevices: number; skippedOfflineDevices?: number; offlineDeviceIds?: string[]; failedTargets: string[] | null; } export declare class LightingIntentResponseModel extends BaseSuccessResponseModel { data: LightingIntentResultDataModel; } export declare class ClimateStateDataModel { hasClimate: boolean; mode: string; currentTemperature: number | null; currentHumidity: number | null; heatingSetpoint: number | null; coolingSetpoint: number | null; minSetpoint: number; maxSetpoint: number; supportsHeating: boolean; supportsCooling: boolean; isHeating: boolean; isCooling: boolean; isMixed: boolean; devicesCount: number; lastAppliedMode: ClimateMode | null; lastAppliedAt: Date | null; } export declare class ClimateStateResponseModel extends BaseSuccessResponseModel { data: ClimateStateDataModel; } export declare class ClimateIntentResultDataModel { success: boolean; affectedDevices: number; failedDevices: number; skippedOfflineDevices?: number; offlineDeviceIds?: string[]; failedTargets: string[] | null; mode: string; heatingSetpoint: number | null; coolingSetpoint: number | null; } export declare class ClimateIntentResponseModel extends BaseSuccessResponseModel { data: ClimateIntentResultDataModel; } export declare class LightTargetDataModel { deviceId: string; deviceName: string; channelId: string; channelName: string; role: LightingRole | null; priority: number; hasBrightness: boolean; hasColorTemp: boolean; hasColor: boolean; } export declare class LightTargetsResponseModel extends BaseSuccessResponseModel { data: LightTargetDataModel[]; } export declare class LightingRoleResponseModel extends BaseSuccessResponseModel { data: SpaceLightingRoleEntity; } export declare class LightingRolesResponseModel extends BaseSuccessResponseModel { data: SpaceLightingRoleEntity[]; } export declare class BulkLightingRoleResultItemModel { deviceId: string; channelId: string; success: boolean; role: LightingRole | null; error: string | null; } export declare class BulkLightingRolesResultDataModel { success: boolean; totalCount: number; successCount: number; failureCount: number; results: BulkLightingRoleResultItemModel[]; } export declare class BulkLightingRolesResponseModel extends BaseSuccessResponseModel { data: BulkLightingRolesResultDataModel; } export declare class ClimateTargetDataModel { deviceId: string; deviceName: string; deviceCategory: DeviceCategory; channelId: string | null; channelName: string | null; channelCategory: ChannelCategory | null; role: ClimateRole | null; priority: number; hasTemperature: boolean; hasHumidity: boolean; hasAirQuality: boolean; hasAirParticulate: boolean; hasCarbonDioxide: boolean; hasVolatileOrganicCompounds: boolean; hasPressure: boolean; hasMode: boolean; } export declare class ClimateTargetsResponseModel extends BaseSuccessResponseModel { data: ClimateTargetDataModel[]; } export declare class ClimateRoleResponseModel extends BaseSuccessResponseModel { data: SpaceClimateRoleEntity | null; } export declare class ClimateRolesResponseModel extends BaseSuccessResponseModel { data: SpaceClimateRoleEntity[]; } export declare class BulkClimateRoleResultItemModel { deviceId: string; channelId: string | null; success: boolean; role: ClimateRole | null; error: string | null; } export declare class BulkClimateRolesResultDataModel { success: boolean; totalCount: number; successCount: number; failureCount: number; results: BulkClimateRoleResultItemModel[]; } export declare class BulkClimateRolesResponseModel extends BaseSuccessResponseModel { data: BulkClimateRolesResultDataModel; } export declare class RoleCoversStateDataModel { role: CoversRole; position: number | null; isPositionMixed: boolean; tilt: number | null; isTiltMixed: boolean; hasTilt: boolean; isOpen: boolean; isClosed: boolean; devicesCount: number; devicesOpen: number; static fromState(roleState: RoleCoversState): RoleCoversStateDataModel; } export declare class CoversStateDataModel { hasCovers: boolean; detectedMode: CoversMode | null; modeConfidence: 'exact' | 'approximate' | 'none'; modeMatchPercentage: number | null; isModeFromIntent: boolean; averagePosition: number | null; isPositionMixed: boolean; averageTilt: number | null; isTiltMixed: boolean; hasTilt: boolean; anyOpen: boolean; allClosed: boolean; devicesCount: number; roles: Record; coversByRole: Record; lastAppliedMode: CoversMode | null; lastAppliedAt: Date | null; static fromState(state: CoversState): CoversStateDataModel; } export declare class CoversStateResponseModel extends BaseSuccessResponseModel { data: CoversStateDataModel; } export declare class CoversIntentResultDataModel { success: boolean; affectedDevices: number; failedDevices: number; skippedOfflineDevices?: number; offlineDeviceIds?: string[]; failedTargets: string[] | null; newPosition: number | null; } export declare class CoversIntentResponseModel extends BaseSuccessResponseModel { data: CoversIntentResultDataModel; } export declare class CoversTargetDataModel { deviceId: string; deviceName: string; channelId: string; channelName: string; role: CoversRole | null; priority: number; hasPosition: boolean; hasCommand: boolean; hasTilt: boolean; coverType: string | null; } export declare class CoversTargetsResponseModel extends BaseSuccessResponseModel { data: CoversTargetDataModel[]; } export declare class CoversRoleResponseModel extends BaseSuccessResponseModel { data: SpaceCoversRoleEntity; } export declare class BulkCoversRoleResultItemModel { deviceId: string; channelId: string; success: boolean; role: CoversRole | null; error: string | null; } export declare class BulkCoversRolesResultDataModel { success: boolean; totalCount: number; successCount: number; failureCount: number; results: BulkCoversRoleResultItemModel[]; } export declare class BulkCoversRolesResponseModel extends BaseSuccessResponseModel { data: BulkCoversRolesResultDataModel; } export declare class SuggestionDataModel { type: SuggestionType; title: string; reason: string | null; intentType: string; intentMode: string | null; } export declare class SuggestionResponseModel extends BaseSuccessResponseModel { data: SuggestionDataModel | null; } export declare class SuggestionFeedbackResultDataModel { success: boolean; intentExecuted?: boolean; } export declare class SuggestionFeedbackResponseModel extends BaseSuccessResponseModel { data: SuggestionFeedbackResultDataModel; } export declare class CategoryTemplateDataModel { category: SpaceRoomCategory | SpaceZoneCategory; icon: string; description: string; } export declare class CategoryTemplatesResponseModel extends BaseSuccessResponseModel { data: CategoryTemplateDataModel[]; } export declare class IntentEnumValueDataModel { value: string; label: string; description?: string; icon?: string; } export declare class IntentParamDataModel { name: string; type: string; required: boolean; description: string; enumValues?: IntentEnumValueDataModel[]; minValue?: number; maxValue?: number; } export declare class IntentTypeDataModel { type: string; label: string; description: string; icon: string; params: IntentParamDataModel[]; } export declare class IntentCategoryDataModel { category: IntentCategory; label: string; description: string; icon: string; intents: IntentTypeDataModel[]; } export declare class QuickActionDataModel { type: QuickActionType; label: string; description: string; icon: string; category: IntentCategory; } export declare class LightingRoleMetaDataModel { value: LightingRole; label: string; description: string; icon?: string; } export declare class LightingRoleBrightnessRuleDataModel { on: boolean; brightness: number | null; } export declare class LightingModeOrchestrationDataModel { mode: LightingMode; label: string; description: string; icon?: string; mvpBrightness: number; roles: Record; fallbackRoles?: string[]; fallbackBrightness?: number; } export declare class CoversRolePositionRuleDataModel { position: number; tilt?: number; } export declare class CoversModeOrchestrationDataModel { mode: CoversMode; label: string; description: string; icon?: string; mvpPosition: number; roles: Record; } export declare class IntentCatalogDataModel { categories: IntentCategoryDataModel[]; quickActions: QuickActionDataModel[]; lightingRoles: LightingRoleMetaDataModel[]; lightingModes: LightingModeOrchestrationDataModel[]; coversModes: CoversModeOrchestrationDataModel[]; } export declare class IntentCatalogResponseModel extends BaseSuccessResponseModel { data: IntentCatalogDataModel; } export declare class LightStateSnapshotDataModel { deviceId: string; deviceName: string; channelId: string; channelName: string; role: LightingRole | null; isOn: boolean; brightness: number | null; colorTemperature: number | null; color: string | null; } export declare class LightingSummaryDataModel { totalLights: number; lightsOn: number; averageBrightness: number | null; } export declare class LightingContextDataModel { summary: LightingSummaryDataModel; lights: LightStateSnapshotDataModel[]; } export declare class ContextSnapshotDataModel { spaceId: string; spaceName: string; capturedAt: Date; lighting: LightingContextDataModel; climate: ClimateStateDataModel; } export declare class ContextSnapshotResponseModel extends BaseSuccessResponseModel { data: ContextSnapshotDataModel; } export declare class UndoStateDataModel { canUndo: boolean; actionDescription: string | null; intentCategory: 'lighting' | 'climate' | 'covers' | 'media' | null; capturedAt: Date | null; expiresInSeconds: number | null; } export declare class UndoStateResponseModel extends BaseSuccessResponseModel { data: UndoStateDataModel; } export declare class UndoResultDataModel { success: boolean; restoredDevices: number; failedDevices: number; message: string; } export declare class UndoResultResponseModel extends BaseSuccessResponseModel { data: UndoResultDataModel; } export declare class RoleLastIntentDataModel { brightness: number | null; } export declare class RoleAggregatedStateDataModel { role: LightingRole; isOn: boolean; isOnMixed: boolean; brightness: number | null; colorTemperature: number | null; color: string | null; white: number | null; isBrightnessMixed: boolean; isColorTemperatureMixed: boolean; isColorMixed: boolean; isWhiteMixed: boolean; lastIntent: RoleLastIntentDataModel | null; devicesCount: number; devicesOn: number; static fromState(state: RoleAggregatedState): RoleAggregatedStateDataModel; } export declare class OtherLightsStateDataModel { isOn: boolean; isOnMixed: boolean; brightness: number | null; colorTemperature: number | null; color: string | null; white: number | null; isBrightnessMixed: boolean; isColorTemperatureMixed: boolean; isColorMixed: boolean; isWhiteMixed: boolean; devicesCount: number; devicesOn: number; static fromState(state: OtherLightsState): OtherLightsStateDataModel; } export declare class RolesStateMapDataModel { main?: RoleAggregatedStateDataModel; task?: RoleAggregatedStateDataModel; ambient?: RoleAggregatedStateDataModel; accent?: RoleAggregatedStateDataModel; night?: RoleAggregatedStateDataModel; other?: RoleAggregatedStateDataModel; static fromState(roles: Partial>): RolesStateMapDataModel; } export declare class LightingStateDataModel { hasLights: boolean; detectedMode: LightingMode | null; modeConfidence: 'exact' | 'approximate' | 'none'; modeMatchPercentage: number | null; isModeFromIntent: boolean; lastAppliedMode: LightingMode | null; lastAppliedAt: Date | null; totalLights: number; lightsOn: number; averageBrightness: number | null; roles: RolesStateMapDataModel; lightsByRole: Record; other: OtherLightsStateDataModel; static fromState(state: SpaceLightingState): LightingStateDataModel; } export declare class LightingStateResponseModel extends BaseSuccessResponseModel { data: LightingStateDataModel; } export declare class SensorAdditionalReadingDataModel { propertyId: string; propertyCategory: PropertyCategory; value: number | boolean | string | null; unit: string | null; updatedAt: Date | string | null; trend: 'rising' | 'falling' | 'stable' | null; } export declare class SensorReadingDataModel { deviceId: string; deviceName: string; channelId: string; channelName: string; channelCategory: ChannelCategory; propertyId: string | null; value: number | boolean | string | null; unit: string | null; role: SensorRole | null; updatedAt: Date | string | null; trend: 'rising' | 'falling' | 'stable' | null; additionalReadings: SensorAdditionalReadingDataModel[] | null; } export declare class SensorRoleReadingsDataModel { role: SensorRole; sensorsCount: number; readings: SensorReadingDataModel[]; } export declare class EnvironmentSummaryDataModel { averageTemperature: number | null; averageHumidity: number | null; averagePressure: number | null; averageIlluminance: number | null; } export declare class SafetyAlertDataModel { channelCategory: ChannelCategory; deviceId: string; deviceName: string; channelId: string; triggered: boolean; } export declare class SensorStateDataModel { hasSensors: boolean; totalSensors: number; sensorsByRole: Record; environment: EnvironmentSummaryDataModel | null; safetyAlerts: SafetyAlertDataModel[]; hasSafetyAlert: boolean; motionDetected: boolean; occupancyDetected: boolean; readings: SensorRoleReadingsDataModel[]; } export declare class SensorStateResponseModel extends BaseSuccessResponseModel { data: SensorStateDataModel; } export declare class SensorTargetDataModel { deviceId: string; deviceName: string; deviceCategory: DeviceCategory; channelId: string; channelName: string; channelCategory: ChannelCategory; role: SensorRole | null; priority: number; } export declare class SensorTargetsResponseModel extends BaseSuccessResponseModel { data: SensorTargetDataModel[]; } export declare class SensorRoleResponseModel extends BaseSuccessResponseModel { data: SpaceSensorRoleEntity | null; } export declare class BulkSensorRoleResultItemModel { deviceId: string; channelId: string; success: boolean; role: SensorRole | null; error: string | null; } export declare class BulkSensorRolesResultDataModel { success: boolean; totalCount: number; successCount: number; failureCount: number; results: BulkSensorRoleResultItemModel[]; } export declare class BulkSensorRolesResponseModel extends BaseSuccessResponseModel { data: BulkSensorRolesResultDataModel; }