import { ChannelCategory, DataTypeType, DeviceCategory, PermissionType, PropertyCategory } from '../../../modules/devices/devices.constants'; import { BaseConverter } from '../converters/base.converter'; import { CanHandleResult, ConversionContext, IConverter, MappedChannel } from '../converters/converter.interface'; import { Z2mExpose } from '../interfaces/zigbee2mqtt.interface'; import { MappingLoaderService } from './mapping-loader.service'; import { AnyDerivation, ResolvedMapping } from './mapping.types'; import { ITransformer, TransformerRegistry } from './transformers'; export interface RuntimePropertyMapping { z2mProperty: string; panelIdentifier: string; panelCategory: PropertyCategory; channelCategory: ChannelCategory; dataType: DataTypeType; permissions: PermissionType[]; transformer: ITransformer; name?: string; unit?: string; format?: number[] | string[]; } export declare class ConfigDrivenConverter extends BaseConverter implements IConverter { private readonly mappingLoader; private readonly transformerRegistry; readonly type = "config-driven"; private readonly logger; constructor(mappingLoader: MappingLoaderService, transformerRegistry: TransformerRegistry); canHandle(expose: Z2mExpose, context?: ConversionContext): CanHandleResult; convert(expose: Z2mExpose, context: ConversionContext): MappedChannel[]; private convertChannel; private processFeatures; private processNestedFeatures; private createPropertyFromFeature; private isEnumExpose; private deriveEnumFormat; private isNumericDataType; private isNumericExpose; private deriveNumericFormat; private processProperties; private processStaticProperties; private processDerivedProperties; applyDerivation(derivation: AnyDerivation, sourceValue: unknown): string | null; private applyThresholdDerivation; private applyBooleanDerivation; private applyPositionStatusDerivation; private deriveEnumFormatForProperty; private deriveNumericFormatForProperty; private getPermissions; private isSpecificExpose; private isListExpose; getMappingForExpose(expose: Z2mExpose, allExposes?: Z2mExpose[], deviceInfo?: { model?: string; manufacturer?: string; }): ResolvedMapping | undefined; getSuggestedDeviceCategory(exposes: Z2mExpose[], deviceInfo?: { model?: string; manufacturer?: string; }): DeviceCategory | undefined; getRuntimeMappings(expose: Z2mExpose, allExposes?: Z2mExpose[]): RuntimePropertyMapping[]; transformRead(z2mProperty: string, value: unknown, expose?: Z2mExpose, allExposes?: Z2mExpose[]): unknown; private extractExposeMetadata; transformWrite(panelIdentifier: string, value: unknown, expose?: Z2mExpose, allExposes?: Z2mExpose[]): unknown; getDerivedPropertyDefinitions(channelCategory: ChannelCategory, expose: Z2mExpose, allExposes?: Z2mExpose[]): Array<{ identifier: string; sourceProperty: string; derivation: AnyDerivation; }>; getWriteMapping(channelCategory: ChannelCategory, propertyCategory: PropertyCategory): { z2mProperty: string; transformer: ITransformer; } | null; private hasDeviceSpecificConditions; }