import { EmbeddedMetadata } from "./EmbeddedMetadata"; import { EntityMetadata } from "./EntityMetadata"; import { NamingStrategyInterface } from "../naming-strategy/NamingStrategyInterface"; import { ColumnMetadata } from "./ColumnMetadata"; import { UniqueMetadataArgs } from "../metadata-args/UniqueMetadataArgs"; /** * Unique metadata contains all information about table's unique constraints. */ export declare class UniqueMetadata { /** * Entity metadata of the class to which this unique constraint is applied. */ entityMetadata: EntityMetadata; /** * Embedded metadata if this unique was applied on embedded. */ embeddedMetadata?: EmbeddedMetadata; /** * Target class to which metadata is applied. */ target?: Function | string; /** * Unique columns. */ columns: ColumnMetadata[]; /** * User specified unique constraint name. */ givenName?: string; /** * User specified column names. */ givenColumnNames?: ((object?: any) => (any[] | { [key: string]: number; })) | string[]; /** * Final unique constraint name. * If unique constraint name was given by a user then it stores normalized (by naming strategy) givenName. * If unique constraint name was not given then its generated. */ name: string; /** * Map of column names with order set. * Used only by MongoDB driver. */ columnNamesWithOrderingMap: { [key: string]: number; }; constructor(options: { entityMetadata: EntityMetadata; embeddedMetadata?: EmbeddedMetadata; columns?: ColumnMetadata[]; args?: UniqueMetadataArgs; }); /** * Builds some depend unique constraint properties. * Must be called after all entity metadata's properties map, columns and relations are built. */ build(namingStrategy: NamingStrategyInterface): this; }