import type { PostgresAccessor } from '../../accessor/postgres.ts'; import type { ColumnInfo, ColumnStats, EnumInfo, ForeignKey } from './client.ts'; type ColumnRole = 'dimensions' | 'time_dimensions' | 'facts'; interface ColumnEntry { name: string; expr: string; data_type: string; description?: string; is_enum?: boolean; sample_values?: string[]; } interface Relationship { left_table: string; right_table: string; relationship_columns: { left_column: string; right_column: string; }[]; } export interface EntitySemanticJson { name: string; schema: string; kind: string; description?: string; primary_key?: string[]; dimensions?: ColumnEntry[]; time_dimensions?: ColumnEntry[]; facts?: ColumnEntry[]; relationships?: Relationship[]; } export declare function classifyColumn(name: string, dataType: string, keyColumns: ReadonlySet): ColumnRole; export declare function buildColumnEntry(column: ColumnInfo, comment: string | undefined, enumInfo: EnumInfo | undefined, stats: ColumnStats | undefined): ColumnEntry; export declare function buildRelationships(foreignKeys: readonly ForeignKey[], schema: string, name: string): Relationship[]; export declare function buildEntitySemanticJson(accessor: PostgresAccessor, schema: string, name: string, kind: string): Promise; export {}; //# sourceMappingURL=semantic.d.ts.map