import { EntitySchemaField } from "./entity-schema-field" ; import { EntitySchemaService } from "./entity-schema.service" ; import { Entity } from "../model/entity" ; /**
 * Interface to be implemented by any Datatype transformer of the Schema system.
 */ export interface EntitySchemaDatatype < EntityType = any , DBType = any > { /**
     * Key for this datatype that must be specified in the DatabaseField annotation to use this transformation.
     *
     * for example `@DatabaseField({dataType: 'foo'}) myField` will trigger the datatype implementation with `name` "foo".
     *
     * If you set the name to a TypeScript type, class properties with this type will automatically use
     * that EntitySchemaDatatype without the need to explicitly state the dataType config in the annotation
     * (e.g. `@DatabaseField() myField: string` is triggering the EntitySchemaDatatype with `name` "string".
     */ name : string ; /**
     * The default component how this datatype should be displayed in lists and forms.
     *
     * The name has to match one of the strings in the DYNAMIC_COMPONENT_MAP.
     */ viewComponent ? : string ; editComponent ? : string ; param value param schemaField param schemaService param parent transformToDatabaseFormat ( value , schemaField ? , schemaService ? , parent ? ) : DBType ; param value param schemaField param schemaService param parent transformToObjectFormat ( value , schemaField ? , schemaService ? , parent ? ) : EntityType ; }