import { TableBuilder, TableSchema, InferColumnType } from './table-builder'; import { CollectionQueryBuilder } from '../query/query-builder'; /** * Infer the complete row type including columns and navigation properties */ export type InferRowType> = TBuilder extends TableBuilder ? InferRowTypeFromSchema> : never; /** * Infer row type from built schema */ type InferRowTypeFromSchema = { readonly [K in keyof TSchema['columns']]: K; } & { readonly [K in keyof TSchema['relations']]: TSchema['relations'][K]['type'] extends 'many' ? CollectionQueryBuilder : any; }; /** * Extract data type from columns */ export type InferDataType> = TBuilder extends TableBuilder ? { [K in keyof TColumns]: InferColumnType; } : never; /** * Create typed row for a specific table builder */ export type TypedTableRow> = InferRowType; export {}; //# sourceMappingURL=inference.d.ts.map