import { Repository } from 'typeorm'; import { EventEmitter2 } from '@nestjs/event-emitter'; import { DeviceEntity } from '../../devices/entities/devices.entity'; import { SetLightingRoleDto } from '../dto/lighting-role.dto'; import { SpaceLightingRoleEntity } from '../entities/space-lighting-role.entity'; import { LightingRole } from '../spaces.constants'; import { SpacesService } from './spaces.service'; export interface LightTargetInfo { deviceId: string; deviceName: string; channelId: string; channelName: string; role: LightingRole | null; priority: number; hasBrightness: boolean; hasColorTemp: boolean; hasColor: boolean; } export interface BulkRoleResultItem { deviceId: string; channelId: string; success: boolean; role: LightingRole | null; error: string | null; } export interface BulkRoleResult { success: boolean; totalCount: number; successCount: number; failureCount: number; results: BulkRoleResultItem[]; } export interface LightTargetEventPayload { id: string; space_id: string; device_id: string; device_name: string; channel_id: string; channel_name: string; role: LightingRole | null; priority: number; has_brightness: boolean; has_color_temp: boolean; has_color: boolean; } export declare class SpaceLightingRoleService { private readonly repository; private readonly deviceRepository; private readonly spacesService; private readonly eventEmitter; private readonly logger; constructor(repository: Repository, deviceRepository: Repository, spacesService: SpacesService, eventEmitter: EventEmitter2); findBySpace(spaceId: string): Promise; findOne(spaceId: string, deviceId: string, channelId: string): Promise; setRole(spaceId: string, dto: SetLightingRoleDto): Promise; bulkSetRoles(spaceId: string, roles: SetLightingRoleDto[]): Promise; deleteRole(spaceId: string, deviceId: string, channelId: string): Promise; getLightTargetsInSpace(spaceId: string): Promise; inferDefaultLightingRoles(spaceId: string): Promise; getRoleMap(spaceId: string): Promise>; private buildLightTargetEventPayload; }