import { Property } from '../../../domain'; export declare enum EntityReferenceType { DIRECT_FK_REFERENCE = "DIRECT_FK_REFERENCE",// i.e., this is a reference to a row in another table in _this_ database IMPLICIT_UUID_REFERENCE = "IMPLICIT_UUID_REFERENCE" } /** * defines the important keys for an entity + property mapping table * * background: * - mapping tables are how arrays of data are persisted in relational databases * - arrays should only ever be of _relationships_ between entities (i.e., not an array of "favorite_fruit_names", but an array of references to "fruits") * - references can be made explicitly (within the database by fk) or implicitly (between distributed databases by uuid) * * refs: * - https://stackoverflow.com/a/17371788/3068233 */ export declare const defineMappingTableKeysForEntityProperty: ({ entityName, propertyName, propertyDefinition, }: { entityName: string; propertyName: string; propertyDefinition: Property; }) => { tableName: string; entityReferenceColumnName: string; mappedEntityReferenceColumnType: 'bigint' | 'uuid'; mappedEntityReferenceColumnName: string; entityReferenceTableName: string; arrayOrderIndexColumnName: string; };