import { OnModuleInit } from '@nestjs/common'; import { ChannelCategory } from '../../../modules/devices/devices.constants'; import { AnyDerivation, DerivationDefinition, MappingFileInfo, MappingLoadResult, ResolvedMapping } from './mapping.types'; import { TransformerRegistry } from './transformers'; export declare class MappingLoaderService implements OnModuleInit { private readonly transformerRegistry; private readonly logger; private readonly ajv; private readonly validateSchema; private readonly derivationRegistry; private resolvedMappings; private loadedSources; private readonly builtinMappingsPath; private readonly userMappingsPath; private readonly userDataDir; private static readonly USER_FILE_PREFIX; constructor(transformerRegistry: TransformerRegistry); onModuleInit(): void; private loadDerivationRules; loadAllMappings(): void; private discoverMappingFiles; loadMappingFile(fileInfo: MappingFileInfo): MappingLoadResult; private resolveMapping; private resolveChannel; private resolveStaticProperty; private resolveDerivedProperty; private resolveFeature; private resolveProperty; private resolvePanelProperty; private resolveDeviceCategory; private resolveChannelCategory; private resolvePropertyCategory; private resolveDataType; getMappings(): ResolvedMapping[]; getMappingsForExposeType(exposeType: string): ResolvedMapping[]; getMappingsForProperty(propertyName: string): ResolvedMapping[]; findMatchingMapping(exposeType: string, propertyName?: string, features?: string[], deviceProperties?: string[], isListExpose?: boolean, deviceInfo?: { model?: string; manufacturer?: string; }): ResolvedMapping | undefined; getDerivedPropertiesForChannel(channelCategory: ChannelCategory): Array<{ identifier: string; sourceProperty: string; derivation: AnyDerivation; }>; private matchesCondition; getLoadResults(): MappingLoadResult[]; reload(): void; getUserMappingsPath(): string | null; getUserDataDir(): string; getBuiltinMappingsPath(): string; getDerivation(name: string): DerivationDefinition | undefined; hasDerivation(name: string): boolean; }