import { DataSourceProperty, GuidValue, PropertyConfiguration, PropertyDefinition, PropertyValueType, PropertyDefinitionId } from "../../../models"; export type DataSourcePropertyDefintionHandlerId = GuidValue; /** * * A plugin module for handling the different property definitions/values that can be created from the data source properties * * */ export declare abstract class DataSourcePropertyDefinitionHandler, TDataSourceProperty extends DataSourceProperty, DataSourceReadDataType, DataSourceWriteBackType> { /** * A unique constant id for this converter * */ abstract readonly Id: DataSourcePropertyDefintionHandlerId; /** * Handler title, will be used if more than one handler exists for any given propertyDefinition * E.g "Ticks to DateTimeProperty", and one other handler nemed "String to DateTimeProperty", i.e "TDataSourceData To TPropertyDefinition" or so. * */ abstract readonly title: string; /** * The property defintion this handler is intended to handle * */ readonly propertyDefintionId: PropertyDefinitionId; /** * The ctor for the definition which this handler is defined for, only used to link with definitionId in a typesafe way * */ constructor(propertyDefinitionCtor: new () => TPropertyDefinition); propertyConfiguration?: PropertyConfiguration; /** * This method should convert from the data source value to PropertyValue matching the TPropertyDefinition * */ abstract propertyValueCreator(dataSourceProperty: TDataSourceProperty, valueFromSource: DataSourceReadDataType, propertyconfiguration?: PropertyConfiguration>): Promise>; /** * This method should convert from PropertyValue matching the TPropertyDefinition to the write back data type expected for data source to be able to writeback * */ abstract propertyWriteBackDataCreator(dataSourceProperty: TDataSourceProperty, propertyValue: PropertyValueType): Promise; }