import type * as DatabaseSchema from "./DatabaseSchema"; import type * as Table from "./Table"; import type * as TableInfo from "./TableInfo"; export declare const TypeId: "~@confect/server/DataModel"; export type TypeId = typeof TypeId; export interface DataModel< Tables_ extends Readonly>, > { readonly [TypeId]: Readonly; } export interface Any { readonly [TypeId]: unknown; } export interface AnyWithProps extends DataModel< Readonly> > {} export type FromSchema = DataModel< Schema[DatabaseSchema.TypeId] >; export type FromTables = DataModel< Table.TablesRecord >; export type ToConvex = { [TableName_ in TableNames]: TableInfoWithName< DataModel_, TableName_ >; }; export type Tables = DataModel_[TypeId][keyof DataModel_[TypeId]]; export type TableNames = Table.Name< Tables > & string; export type TableWithName< DataModel_ extends AnyWithProps, TableName extends TableNames, > = Table.WithName, TableName>; export type TableInfoWithName_< DataModel_ extends AnyWithProps, TableName extends TableNames, > = TableInfo.TableInfo, TableName>>; export type TableInfoWithName< DataModel_ extends AnyWithProps, TableName extends TableNames, > = TableInfo.ConvexTableInfo< TableInfo.TableInfo, TableName>> >; export type DocumentWithName< DataModel_ extends AnyWithProps, TableName extends TableNames, > = TableInfo.Document< TableInfo.TableInfo, TableName>> >; export type DocumentByName< DataModel_ extends AnyWithProps, TableName extends TableNames, > = DocumentWithName;