import { OnModuleDestroy } from '@nestjs/common'; import { ChannelCategory, DeviceCategory, PropertyCategory } from '../../../modules/devices/devices.constants'; import { ChannelsPropertiesService } from '../../../modules/devices/services/channels.properties.service'; import { DevicesService } from '../../../modules/devices/services/devices.service'; import { IDeviceBehavior } from '../behaviors'; import { SimulatorDeviceEntity } from '../entities/simulator.entity'; export declare class DeviceBehaviorManagerService implements OnModuleDestroy { private readonly devicesService; private readonly channelsPropertiesService; private readonly logger; private readonly behaviors; private readonly categoryDefaults; private readonly deviceBehaviorAssignments; private readonly deviceStates; private tickTimer; private tickInProgress; private tickIntervalMs; constructor(devicesService: DevicesService, channelsPropertiesService: ChannelsPropertiesService); registerBehavior(behavior: IDeviceBehavior, isDefault?: boolean): void; assignBehavior(deviceId: string, behaviorType: string): boolean; unassignBehavior(deviceId: string): void; getBehaviorForDevice(device: SimulatorDeviceEntity): IDeviceBehavior | null; hasBehavior(device: SimulatorDeviceEntity): boolean; private getOrCreateState; handlePropertyChange(device: SimulatorDeviceEntity, channelCategory: ChannelCategory, propertyCategory: PropertyCategory, value: string | number | boolean, previousValue?: string | number | boolean): void; processTick(): Promise<{ devicesProcessed: number; propertiesUpdated: number; }>; private applyBehaviorResults; hasActiveTransitions(): boolean; setTickInterval(intervalMs: number): void; private ensureTickTimer; stopTickTimer(): void; getRegisteredBehaviors(): Array<{ type: string; category: DeviceCategory; isDefault: boolean; }>; getActiveDeviceCount(): number; clearAll(): void; onModuleDestroy(): void; }