import { ChannelCategory, PropertyCategory } from '../../../modules/devices/devices.constants'; import { MappingLoaderService, ResolvedVirtualProperty, VirtualPropertyType } from '../mappings'; import { ResolvedVirtualPropertyValue, VirtualPropertyContext } from './virtual-property.types'; export declare class VirtualPropertyService { private readonly mappingLoaderService; private readonly logger; constructor(mappingLoaderService: MappingLoaderService); resolveVirtualPropertyValue(definition: ResolvedVirtualProperty, context: VirtualPropertyContext): ResolvedVirtualPropertyValue; getVirtualPropertiesForChannel(channelCategory: ChannelCategory): ResolvedVirtualProperty[]; getMissingVirtualProperties(channelCategory: ChannelCategory, existingPropertyCategories: Set, requiredPropertyCategories: PropertyCategory[]): ResolvedVirtualProperty[]; canFulfillWithVirtual(channelCategory: ChannelCategory, propertyCategory: PropertyCategory): boolean; getVirtualPropertyDefinition(channelCategory: ChannelCategory, propertyCategory: PropertyCategory): ResolvedVirtualProperty | null; getServiceCallForCommand(channelCategory: ChannelCategory, propertyCategory: PropertyCategory, commandValue: string, entityId: string): { domain: string; service: string; entityId: string; data?: Record; } | null; private resolveStaticValue; private resolveDerivedValue; private applyDerivationRule; private applyThresholdDerivation; private applyDeviceClassMapDerivation; private applyStaticDerivation; resolveAllVirtualProperties(channelCategory: ChannelCategory, context: VirtualPropertyContext): ResolvedVirtualPropertyValue[]; isCommandProperty(channelCategory: ChannelCategory, propertyCategory: PropertyCategory): boolean; getVirtualAttributeMarker(propertyCategory: PropertyCategory, virtualType: VirtualPropertyType): string; }