import { PgColumn, PgFkColumn, PgTable, PgType, TableSmartTags } from '../../abstractions'; import { PublishSchemaToDbOptions } from '../../publish-schema-to-db-options'; import { PrimitiveColumnOptions } from '../columns'; /** * Configuration interface for creating additional columns in the relations table. */ export interface AdditionalColumnOptions { /** Name of the column. */ name: string; /** Type of the column. */ type: PgType; /** Additional options. */ options?: PrimitiveColumnOptions; } /** * Table model for maintaining arbitrary (soft/virtual) on-to-many relationships. */ export declare class RelationsTable 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 RelationsTable. * @param contentEntity - Content entity these relations are attached to. * @param relatedEntities - Array of other content entities to create relations to. * @param schema - DB schema where this table will be created. * @param displayName - Display name of this table, used in the generated GQL API. * @param additionalColumnOptions - Array of configuration objects for constructing additional PrimitiveColumn instances. */ constructor(config: PublishSchemaToDbOptions, contentEntity: PgTable, relatedEntities: PgTable[], displayName: string, additionalColumnOptions?: AdditionalColumnOptions[], description?: string); buildFullName(): string; buildSmartTags(): TableSmartTags; buildStatements(): string[]; }