import { ColumnType } from './column-types'; /** * Metadata storage key */ export declare const METADATA_KEY: unique symbol; /** * Column metadata */ export interface ColumnMetadata { propertyKey: string; columnName: string; type: ColumnType; nullable: boolean; primaryKey: boolean; autoIncrement: boolean; unique: boolean; default?: any; length?: number; precision?: number; scale?: number; } /** * Navigation property types */ export declare enum NavigationType { OneToMany = "OneToMany", ManyToOne = "ManyToOne", ManyToMany = "ManyToMany" } /** * Navigation property metadata */ export interface NavigationMetadata { propertyKey: string; type: NavigationType; targetEntity: () => Function; foreignKey?: string; inverseSide?: string; joinTable?: { name: string; joinColumn: string; inverseJoinColumn: string; }; } /** * Table metadata */ export interface TableMetadata { tableName: string; schema?: string; columns: Map; navigations: Map; primaryKeys: string[]; } /** * DbEntity metadata storage */ export declare class MetadataStorage { private static tables; static getTableMetadata(target: Function): TableMetadata | undefined; static setTableMetadata(target: Function, metadata: TableMetadata): void; static ensureTableMetadata(target: Function): TableMetadata; static addColumn(target: Function, column: ColumnMetadata): void; static addNavigation(target: Function, navigation: NavigationMetadata): void; static getAllMetadata(): Map; } //# sourceMappingURL=metadata.d.ts.map