import { ChannelCategory, DataTypeType, PermissionType, PropertyCategory } from '../../../modules/devices/devices.constants'; import { Z2mExpose, Z2mExposeBinary, Z2mExposeEnum, Z2mExposeNumeric } from '../interfaces/zigbee2mqtt.interface'; import { CanHandleResult, ConversionContext, IConverter, MappedChannel, MappedProperty } from './converter.interface'; export declare abstract class BaseConverter implements IConverter { abstract readonly type: string; abstract canHandle(expose: Z2mExpose): CanHandleResult; abstract convert(expose: Z2mExpose, context: ConversionContext): MappedChannel[]; protected mapAccessToPermissions(access: number): PermissionType[]; protected getDataType(channelCategory: ChannelCategory, propertyCategory: PropertyCategory, expose: Z2mExpose): DataTypeType; protected inferDataType(expose: Z2mExpose): DataTypeType; protected formatName(name: string): string; protected formatChannelName(baseName: string, endpoint?: string): string; protected createChannelIdentifier(type: string, endpoint?: string): string; protected scaleBrightnessToPercent(value: number, max?: number): number; protected scalePercentToBrightness(percent: number, max?: number): number; protected miredToKelvin(mired: number): number; protected kelvinToMired(kelvin: number): number; protected shouldSkipExpose(expose: Z2mExpose): boolean; protected getPropertyName(expose: Z2mExpose): string | undefined; protected cannotHandle(): CanHandleResult; protected canHandleWith(priority: number): CanHandleResult; protected extractBinaryFormat(expose: Z2mExposeBinary): string[] | undefined; protected extractNumericRange(expose: Z2mExposeNumeric): { min?: number; max?: number; step?: number; unit?: string; }; protected extractEnumValues(expose: Z2mExposeEnum): string[]; protected findFeature(expose: { features?: Z2mExpose[]; }, propertyName: string): Z2mExpose | undefined; protected findFeatures(expose: { features?: Z2mExpose[]; }, predicate: (f: Z2mExpose) => boolean): Z2mExpose[]; protected createProperty(params: { identifier: string; name: string; category: PropertyCategory; channelCategory: ChannelCategory; dataType: DataTypeType; z2mProperty: string; access?: number; permissions?: PermissionType[]; } & Partial>): MappedProperty; protected createChannel(params: { identifier: string; name: string; category: ChannelCategory; endpoint?: string; properties: MappedProperty[]; parentIdentifier?: string; }): MappedChannel; } export declare const SKIP_PROPERTIES: readonly ["temperature_calibration", "humidity_calibration", "illuminance_calibration", "pm25_calibration", "temperature_unit", "temperature_precision", "humidity_precision", "radar_sensitivity", "minimum_range", "maximum_range", "detection_delay", "fading_time", "reverse_direction", "self_test", "threshold", "timer", "effect", "do_not_disturb", "color_power_on_behavior", "identify", "linkquality"];