import { ColumnMetadata } from "./ColumnMetadata"; import { EntityMetadata } from "./EntityMetadata"; import { NamingStrategyInterface } from "../naming-strategy/NamingStrategyInterface"; import { DeferrableType } from "./types/DeferrableType"; import { OnDeleteType } from "./types/OnDeleteType"; import { OnUpdateType } from "./types/OnUpdateType"; /** * Contains all information about entity's foreign key. */ export declare class ForeignKeyMetadata { /** * Entity metadata where this foreign key is. */ entityMetadata: EntityMetadata; /** * Entity metadata which this foreign key references. */ referencedEntityMetadata: EntityMetadata; /** * Array of columns of this foreign key. */ columns: ColumnMetadata[]; /** * Array of referenced columns. */ referencedColumns: ColumnMetadata[]; /** * What to do with a relation on deletion of the row containing a foreign key. */ onDelete?: OnDeleteType; /** * What to do with a relation on update of the row containing a foreign key. */ onUpdate?: OnUpdateType; /** * When to check the constraints of a foreign key. */ deferrable?: DeferrableType; /** * Gets the table name to which this foreign key is referenced. */ referencedTablePath: string; /** * Gets foreign key name. */ name: string; /** * Gets array of column names. */ columnNames: string[]; /** * Gets array of referenced column names. */ referencedColumnNames: string[]; constructor(options: { entityMetadata: EntityMetadata; referencedEntityMetadata: EntityMetadata; namingStrategy?: NamingStrategyInterface; columns: ColumnMetadata[]; referencedColumns: ColumnMetadata[]; onDelete?: OnDeleteType; onUpdate?: OnUpdateType; deferrable?: DeferrableType; }); /** * Builds some depend foreign key properties. * Must be called after all entity metadatas and their columns are built. */ build(namingStrategy: NamingStrategyInterface): void; }