import { EventEmitter2 } from '@nestjs/event-emitter'; import { ChannelEntity, ChannelPropertyEntity, DeviceEntity } from '../../devices/entities/devices.entity'; import { PlatformRegistryService } from '../../devices/services/platform.registry.service'; import { IntentTimeseriesService } from '../../intents/services/intent-timeseries.service'; import { IntentsService } from '../../intents/services/intents.service'; import { LightingIntentDto } from '../dto/lighting-intent.dto'; import { LightingMode, LightingRole, RoleBrightnessRule } from '../spaces.constants'; import { IntentSpecLoaderService, ResolvedModeOrchestration } from '../spec'; import { SpaceContextSnapshotService } from './space-context-snapshot.service'; import { IntentExecutionResult, SpaceIntentBaseService } from './space-intent-base.service'; import { SpaceLightingRoleService } from './space-lighting-role.service'; import { SpaceLightingStateService } from './space-lighting-state.service'; import { SpaceUndoHistoryService } from './space-undo-history.service'; import { SpacesService } from './spaces.service'; export interface LightDevice { device: DeviceEntity; lightChannel: ChannelEntity; onProperty: ChannelPropertyEntity; brightnessProperty: ChannelPropertyEntity | null; colorRedProperty: ChannelPropertyEntity | null; colorGreenProperty: ChannelPropertyEntity | null; colorBlueProperty: ChannelPropertyEntity | null; hueProperty: ChannelPropertyEntity | null; saturationProperty: ChannelPropertyEntity | null; colorTempProperty: ChannelPropertyEntity | null; whiteProperty: ChannelPropertyEntity | null; role: LightingRole | null; } export interface LightModeSelection { light: LightDevice; rule: RoleBrightnessRule; isFallback: boolean; } export declare function selectLightsForMode(lights: LightDevice[], mode: LightingMode, config: ResolvedModeOrchestration): LightModeSelection[]; export declare class LightingIntentService extends SpaceIntentBaseService { private readonly spacesService; private readonly platformRegistryService; private readonly lightingRoleService; private readonly eventEmitter; private readonly contextSnapshotService; private readonly undoHistoryService; private readonly intentTimeseriesService; private readonly lightingStateService; private readonly intentSpecLoaderService; private readonly intentsService; private readonly logger; constructor(spacesService: SpacesService, platformRegistryService: PlatformRegistryService, lightingRoleService: SpaceLightingRoleService, eventEmitter: EventEmitter2, contextSnapshotService: SpaceContextSnapshotService, undoHistoryService: SpaceUndoHistoryService, intentTimeseriesService: IntentTimeseriesService, lightingStateService: SpaceLightingStateService, intentSpecLoaderService: IntentSpecLoaderService, intentsService: IntentsService); executeLightingIntent(spaceId: string, intent: LightingIntentDto): Promise; private buildLightingTargets; private filterOfflineIdsByRole; private mapLightingIntentType; private buildLightingIntentValue; private emitLightingStateChange; private executeModeIntent; private executeModeIntentWithResults; private executeRuleForLight; private getLightsInSpace; private executeIntentForLight; private buildBrightnessDeltaCommands; private captureUndoSnapshot; private buildIntentDescription; private buildRoleSetDescription; private isRoleSpecificIntent; private executeRoleIntent; private executeRoleIntentWithResults; private executeRoleIntentForLight; private filterOfflineDevices; private hexToRgb; private hexToHsv; }