import { MetaType } from './metaTypeCreator'; import { IsEqual } from './utils'; import { DocumentReference, Query, CollectionReference, GeneralQuery, CollectionGroup } from './refs'; import { IsValidID, GetNumberOfPathSlash } from './validID'; import { ErrorNumberOfForwardSlashIsNotEqual, ErrorPleaseDoConstAssertion } from './error'; import { DeepValue } from './objectFlatten'; export type __name__ = '__name__'; export type __name__Record = Record<__name__, unknown>; export type GetCorrectDocumentIdBasedOnRef, FieldPath extends keyof T['compare'], Value> = FieldPath extends __name__ ? Value extends string ? true extends IsEqual, Q> ? string extends T['docID'] ? IsValidID : string extends Value ? ErrorPleaseDoConstAssertion : Value extends T['docID'] ? IsValidID : T['docID'] : true extends IsEqual, Q> | IsEqual, Q> ? string extends Value ? ErrorPleaseDoConstAssertion : GetNumberOfPathSlash extends GetNumberOfPathSlash ? Value extends T['docPath'] ? IsValidID : T['docPath'] : ErrorNumberOfForwardSlashIsNotEqual : never : DocumentReference : FieldPath extends string ? DeepValue : never;