import { IWhereBuilder } from './interfaces.js'; import { Relation, SingleRelation } from './relation-objects.js'; export type WhereFunction = (this: IWhereBuilder) => void; export type Unbox = T extends Array ? U : T; export type UnboxRelation = T extends Relation ? U[] : T extends SingleRelation ? Z : never; export type UnboxRelationWithModelDataSearchable = T extends Relation ? Omit, ExcludedModelProperties>[] : T extends SingleRelation ? Omit, ExcludedModelProperties> | number : T; export type UnboxRelationWithModelData = T extends Relation ? Omit, ExcludedModelProperties>[] : T extends SingleRelation ? Omit, ExcludedModelProperties> : T; export type PickRelations = { [P in keyof T as T[P] extends Relation | SingleRelation ? P : never]: UnboxRelation; }; export type PickRelationsWithModelDataSearchable = { [P in keyof T as T[P] extends Relation | SingleRelation ? P : never]: UnboxRelationWithModelDataSearchable; }; export type PickRelationsWithModelData = { [P in keyof T as T[P] extends Relation | SingleRelation ? P : never]: UnboxRelationWithModelData; }; export type PartialModel = { [P in keyof T]?: T[P] extends SingleRelation ? W : T[P] | undefined; }; export type NonFunctionAndRelationPropertyNames = { [K in keyof T]: T[K] extends Function | Relation | SingleRelation ? never : K; }[keyof T]; export type NonFunctionPropertyNames = { [K in keyof T]: T[K] extends Function ? never : K; }[keyof T]; export type ExcludedModelProperties = 'PrimaryKeyValue' | 'PrimaryKeyName' | 'ModelDescriptor' | 'Container' | 'JunctionModelProps'; export type ModelData = Omit>, ExcludedModelProperties>; export type ModelDataWithRelationData = Omit>, ExcludedModelProperties> & PickRelationsWithModelData; export type ModelDataWithRelationDataSearchable = Omit>, ExcludedModelProperties> & PickRelationsWithModelDataSearchable; export type PartialArray = { [P in keyof T]: T[P] | T[P][]; }; //# sourceMappingURL=types.d.ts.map