import { BaseSuccessResponseModel } from '../../../modules/api/models/api-response.model'; import { ChannelCategory, DataTypeType, DeviceCategory, PermissionType, PropertyCategory } from '../../../modules/devices/devices.constants'; import { VirtualPropertyType } from '../mappings'; export declare class PropertyMappingPreviewModel { category: PropertyCategory; name: string; haAttribute: string; dataType: DataTypeType; permissions: PermissionType[]; unit: string | null; format: (string | number)[] | null; required: boolean; currentValue: string | number | boolean | null; haEntityId?: string | null; haTransformer?: string | null; isVirtual?: boolean; virtualType?: VirtualPropertyType | null; } export declare class SuggestedChannelModel { category: ChannelCategory; name: string; confidence: 'high' | 'medium' | 'low'; } export declare class EntityMappingPreviewModel { entityId: string; domain: string; deviceClass: string | null; currentState: string | number | boolean | null; attributes: Record; status: 'mapped' | 'partial' | 'unmapped' | 'skipped' | 'incompatible'; suggestedChannel: SuggestedChannelModel | null; suggestedProperties: PropertyMappingPreviewModel[]; unmappedAttributes: string[]; missingRequiredProperties: PropertyCategory[]; incompatibleReason?: string | null; } export declare class MappingWarningModel { type: 'missing_required_channel' | 'missing_required_property' | 'unsupported_entity' | 'unknown_device_class' | 'incompatible_channel'; entityId?: string; message: string; suggestion?: string; } export declare class SuggestedDeviceModel { category: DeviceCategory; name: string; confidence: 'high' | 'medium' | 'low'; } export declare class HaDeviceInfoModel { id: string; name: string; manufacturer: string | null; model: string | null; } export declare class ValidationSummaryModel { isValid: boolean; missingChannelsCount: number; missingPropertiesCount: number; fillableWithVirtualCount: number; missingChannels: string[]; missingProperties: Record; autoFilledVirtual: Record; unknownChannels: string[]; duplicateChannels: string[]; constraintViolations: string[]; } export declare class MappingPreviewModel { haDevice: HaDeviceInfoModel; suggestedDevice: SuggestedDeviceModel; entities: EntityMappingPreviewModel[]; warnings: MappingWarningModel[]; readyToAdopt: boolean; validation?: ValidationSummaryModel; } export declare class MappingPreviewResponseModel extends BaseSuccessResponseModel { data: MappingPreviewModel; }