import type { JSONSchema4 } from 'json-schema'; import { type PgColumn, type PgFkColumn, type PgTable, type TableSmartTags } from '../../abstractions/index.js'; import type { PublishSchemaToDbOptions } from '../../publish-schema-to-db-options.js'; /** * Table model for storing complex/object properties (licensing, video streams etc.) of a root entity. * It will have a FK relation to the root entity in the database. */ export declare class ObjectPropertyTable implements PgTable { name: string; displayName?: string; readonly description?: string; readonly pk: PgColumn; readonly fks: PgFkColumn[]; readonly virtualFks: PgFkColumn[]; readonly columns: PgColumn[]; private options; /** * Constructor for ObjectPropertyTable. * @param propertyName - Name of the property. * @param schema - DB schema where this table will be created. * @param jsonSchema - JSON schema describing this object property. * @param contentEntityPk - PK of the content entity this object property belongs to. */ constructor(options: PublishSchemaToDbOptions, propertyName: string, jsonSchema: JSONSchema4, contentEntityPk: PgColumn); buildFullName(): string; buildSmartTags(): TableSmartTags; buildStatements(): string[]; }