import { TypeMismatchError } from "./type-mismatch-error"; import { QueryConfig } from "./query-config"; import { ExtractDocumentTypes } from "./document-types"; export type RefType = { [P in referenceSymbol]?: TTypeName; }; export type ExtractRefType = TResultItem extends RefType ? Extract : TypeMismatchError<{ error: "⛔️ Expected the object to be a reference type ⛔️"; expected: RefType>; actual: TResultItem; }>; export type DerefDeep = T extends Array ? Array> : T extends null ? T : T extends RefType ? Extract : TypeMismatchError<{ error: "⛔️ Expected the object to be a reference type ⛔️"; expected: RefType>; actual: T; }>;