import { MetaType } from '../metaTypeCreator'; import { ErrorCursorTooManyArguments } from '../error'; import { QueryConstraints, OrderByConstraint, CursorConstraint, CursorType } from '../queryConstraints'; import { __name__, GetCorrectDocumentIdBasedOnRef } from '../fieldPath'; import { QueryDocumentSnapshot, DocumentSnapshot } from '../snapshot'; import { GetAllOrderBy } from './orderBy'; import { Query } from '../refs'; import { DeepValue } from '../objectFlatten'; type ValidateCursorOrderBy, Values extends unknown[], AllOrderBy extends OrderByConstraint[]> = Values extends [infer Head, ...infer Rest] ? AllOrderBy extends [infer H, ...infer R] ? H extends OrderByConstraint ? [ H['fieldPath'] extends __name__ ? GetCorrectDocumentIdBasedOnRef : Head extends DeepValue | QueryDocumentSnapshot | DocumentSnapshot ? Head | QueryDocumentSnapshot | DocumentSnapshot : DeepValue | QueryDocumentSnapshot | DocumentSnapshot, ...ValidateCursorOrderBy[] ? R : []> ] : never : [ErrorCursorTooManyArguments] : []; export type CursorConstraintLimitation, U extends CursorConstraint, PreviousQCs extends QueryConstraints[]> = CursorConstraint>>; export {};