interface AgDataTypeMap { string: string; number: number; boolean: boolean; date: Date; datetime: Date; } interface DataTypeMap extends AgDataTypeMap { bigint: bigint; } interface AgSerializableTypeMap { string: string; number: number; boolean: boolean; date: string; datetime: string; } export type AgDataType = 'string' | 'number' | 'boolean' | 'date' | 'datetime'; export type DataType = AgDataType | 'bigint'; export type AgPrimitive = AgDataTypeMap[AgDataType]; export type Primitive = DataTypeMap[DataType]; export type Blank = null | undefined; export type Maybe = T | Blank; export type InferPrimitive = T extends AgDataType ? AgDataTypeMap[T] : never; export type InferSerializable = T extends AgDataType ? AgSerializableTypeMap[T] : never; interface StorageTypeMap { string: string; number: number; boolean: boolean; bigint: bigint; date: number; datetime: number; } export type StoredPrimitive = StorageTypeMap[DataType]; export type InferStorage = T extends DataType ? StorageTypeMap[T] : never; export {};