import { Repository } from 'typeorm'; import { EventEmitter2 } from '@nestjs/event-emitter'; import { DeviceEntity } from '../../devices/entities/devices.entity'; import { SetCoversRoleDto } from '../dto/covers-role.dto'; import { SpaceCoversRoleEntity } from '../entities/space-covers-role.entity'; import { CoversRole } from '../spaces.constants'; import { SpacesService } from './spaces.service'; export interface CoversTargetInfo { deviceId: string; deviceName: string; channelId: string; channelName: string; role: CoversRole | null; priority: number; hasPosition: boolean; hasCommand: boolean; hasTilt: boolean; coverType: string | null; } export interface BulkCoversRoleResultItem { deviceId: string; channelId: string; success: boolean; role: CoversRole | null; error: string | null; } export interface BulkCoversRoleResult { success: boolean; totalCount: number; successCount: number; failureCount: number; results: BulkCoversRoleResultItem[]; } export interface CoversTargetEventPayload { id: string; space_id: string; device_id: string; device_name: string; channel_id: string; channel_name: string; role: CoversRole | null; priority: number; has_position: boolean; has_command: boolean; has_tilt: boolean; cover_type: string | null; } export declare class SpaceCoversRoleService { 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: SetCoversRoleDto): Promise; bulkSetRoles(spaceId: string, roles: SetCoversRoleDto[]): Promise; deleteRole(spaceId: string, deviceId: string, channelId: string): Promise; getCoversTargetsInSpace(spaceId: string): Promise; inferDefaultCoversRoles(spaceId: string): Promise; getRoleMap(spaceId: string): Promise>; private buildCoversTargetEventPayload; }