import { DeviceManagerPlugin } from "../plugin"; import { NamedMeasures } from "../decoder"; import { MeasureDefinition } from "../measure"; import { LocaleDetails, MetadataDetails, MetadataGroups, MetadataMappings, TooltipModels } from "./types/ModelContent"; import { JSONObject } from "kuzzle-sdk"; export declare class ModelsRegister { private config; private context; private assetModels; private deviceModels; private groupModels; private measureModels; private get sdk(); init(plugin: DeviceManagerPlugin): void; loadModels(): Promise; /** * Registers an asset model. * * @param engineGroup - The engine group name. * @param model - The name of the asset model, which must be in PascalCase. * @param measures - The measures associated with this asset model. * @param metadataMappings - The metadata mappings for the model, defaults to an empty object. * @param defaultMetadata - The default metadata values for the model, defaults to an empty object. * @param metadataDetails - Optional detailed metadata descriptions, localizations and definition. * @param metadataGroups - Optional groups for organizing metadata, with localizations. * @param tooltipModels - Optional model list for tooltip, containing labels and tooltip content. * @throws PluginImplementationError if the model name is not in PascalCase. */ registerAsset(engineGroup: string, model: string, measures: NamedMeasures, metadataMappings?: MetadataMappings, defaultMetadata?: JSONObject, metadataDetails?: MetadataDetails, metadataGroups?: MetadataGroups, tooltipModels?: TooltipModels, locales?: { [valueName: string]: LocaleDetails; }): void; /** * Registers a device model. * * @param model - The name of the device model, which must be in PascalCase. * @param measures - The measures associated with this device model. * @param metadataMappings - The metadata mappings for the model, defaults to an empty object. * @param defaultMetadata - The default metadata values for the model, defaults to an empty object. * @param metadataDetails - Optional detailed metadata descriptions, localizations and definition. * @param metadataGroups - Optional groups for organizing metadata, with localizations. * @throws PluginImplementationError if the model name is not in PascalCase. */ registerDevice(model: string, measures: NamedMeasures, metadataMappings?: MetadataMappings, defaultMetadata?: JSONObject, metadataDetails?: MetadataDetails, metadataGroups?: MetadataGroups): void; /** * Registers a group model. * * * @param engineGroup - The engine group name. * @param model - The name of the group model, which must be in PascalCase. * @param metadataMappings - The metadata mappings for the model, defaults to an empty object. * @param defaultMetadata - The default metadata values for the model, defaults to an empty object. * @param metadataDetails - Optional detailed metadata descriptions, localizations and definition. * @param metadataGroups - Optional groups for organizing metadata, with localizations. * @throws PluginImplementationError if the model name is not in PascalCase. */ registerGroup(engineGroup: string, model: string, metadataMappings?: MetadataMappings, defaultMetadata?: JSONObject, metadataDetails?: MetadataDetails, metadataGroups?: MetadataGroups): void; registerMeasure(type: string, measureDefinition: MeasureDefinition): void; private load; }