import { OnModuleInit } from '@nestjs/common'; import { ChannelCategory } from '../../../modules/devices/devices.constants'; import { HomeAssistantDomain } from '../devices-home-assistant.constants'; import { AnyDerivation, EntityRole, MappingFileInfo, MappingLoadResult, ResolvedHaMapping, ResolvedVirtualProperty, VirtualPropertiesLoadResult } from './mapping.types'; import { TransformerRegistry } from './transformers'; export declare class MappingLoaderService implements OnModuleInit { private readonly transformerRegistry; private readonly logger; private readonly ajv; private readonly validateMappingSchema; private readonly validateVirtualPropsSchema; private readonly derivationRegistry; private resolvedMappings; private virtualProperties; private domainRoles; private loadedSources; private readonly builtinMappingsPath; private readonly userMappingsPath; private readonly userDataDir; private static readonly USER_FILE_PREFIX; constructor(transformerRegistry: TransformerRegistry); onModuleInit(): Promise; loadAllMappings(): Promise; private logLoadResult; private discoverMappingFiles; loadMappingFile(fileInfo: MappingFileInfo): Promise; loadVirtualPropertiesFile(fileInfo: MappingFileInfo): Promise; private buildDomainRolesMap; private resolveMapping; private resolveChannelConfig; private resolvePropertyBinding; private resolveVirtualProperty; private resolveCommandMapping; private resolveDomain; private resolveDeviceCategory; private resolveChannelCategory; private resolvePropertyCategory; private resolveDataType; private resolvePermission; getMappings(): ResolvedHaMapping[]; findMatchingMapping(domain: HomeAssistantDomain, deviceClass: string | null, entityId?: string): ResolvedHaMapping | undefined; getVirtualProperties(channelCategory: ChannelCategory): ResolvedVirtualProperty[]; getDomainRole(domain: HomeAssistantDomain): EntityRole; isPrimaryDomain(domain: HomeAssistantDomain): boolean; isStandaloneDomain(domain: HomeAssistantDomain): boolean; getDerivation(name: string): AnyDerivation | undefined; hasDerivation(name: string): boolean; reload(): Promise; getUserMappingsPath(): string | null; getUserDataDir(): string; getBuiltinMappingsPath(): string; }