import { Timestamp, Bytes, GeoPoint } from '../alias'; import { ErrorFieldValueInArray, ErrorUnassignedAbleFieldValue, NoUndefinedAndBannedTypes, NoDirectNestedArray, ErrorPossiblyUndefinedAsArrayElement } from '../error'; import { FieldValues, UnassignedAbleFieldValue, Delete, ServerTimestamp, PossiblyReadAsUndefined } from '../fieldValues'; import { DocumentReference } from '../refs'; import { MetaType } from './metaType'; import { JSONGeoPoint, JSONDocumentReference, JSONTimestamp } from '../json'; type ReadConverterArray = NoDirectNestedArray[] | (InArray extends true ? never : allFieldsPossiblyReadAsUndefined) : T extends FieldValues ? ErrorFieldValueInArray : T extends Date | Timestamp ? Timestamp | (InArray extends true ? never : allFieldsPossiblyReadAsUndefined) : T extends DocumentReference | Bytes | GeoPoint ? T | (InArray extends true ? never : allFieldsPossiblyReadAsUndefined) : T extends Record ? { [K in keyof T]-?: ReadConverterArray; } | (InArray extends true ? never : allFieldsPossiblyReadAsUndefined) : T extends PossiblyReadAsUndefined ? InArray extends true ? ErrorPossiblyUndefinedAsArrayElement : undefined : NoUndefinedAndBannedTypes | allFieldsPossiblyReadAsUndefined>; export type ReadConverter = NoDirectNestedArray[] | allFieldsPossiblyReadAsUndefined : T extends ServerTimestamp | Date | Timestamp ? Timestamp | allFieldsPossiblyReadAsUndefined : T extends DocumentReference | Bytes | GeoPoint ? T | allFieldsPossiblyReadAsUndefined : T extends Record ? { [K in keyof T]-?: ReadConverter; } | allFieldsPossiblyReadAsUndefined : T extends Delete | PossiblyReadAsUndefined ? undefined : T extends UnassignedAbleFieldValue ? ErrorUnassignedAbleFieldValue : NoUndefinedAndBannedTypes | allFieldsPossiblyReadAsUndefined>; type ReadJSONConverterArray = NoDirectNestedArray[] | (InArray extends true ? never : allFieldsPossiblyReadAsUndefined) : T extends FieldValues ? ErrorFieldValueInArray : T extends Date | Timestamp ? JSONTimestamp | (InArray extends true ? never : allFieldsPossiblyReadAsUndefined) : T extends DocumentReference ? JSONDocumentReference | (InArray extends true ? never : allFieldsPossiblyReadAsUndefined) : T extends GeoPoint ? JSONGeoPoint | (InArray extends true ? never : allFieldsPossiblyReadAsUndefined) : T extends Bytes ? T | (InArray extends true ? never : allFieldsPossiblyReadAsUndefined) : T extends Record ? { [K in keyof T]-?: ReadJSONConverterArray; } | (InArray extends true ? never : allFieldsPossiblyReadAsUndefined) : T extends PossiblyReadAsUndefined ? InArray extends true ? ErrorPossiblyUndefinedAsArrayElement : undefined : NoUndefinedAndBannedTypes | allFieldsPossiblyReadAsUndefined>; export type ReadJSONConverter = NoDirectNestedArray[] | allFieldsPossiblyReadAsUndefined : T extends ServerTimestamp | Date | Timestamp ? JSONTimestamp | allFieldsPossiblyReadAsUndefined : T extends DocumentReference ? JSONDocumentReference | allFieldsPossiblyReadAsUndefined : T extends GeoPoint ? JSONGeoPoint | allFieldsPossiblyReadAsUndefined : T extends Bytes ? T | allFieldsPossiblyReadAsUndefined : T extends Record ? { [K in keyof T]-?: ReadJSONConverter; } | allFieldsPossiblyReadAsUndefined : T extends Delete | PossiblyReadAsUndefined ? undefined : T extends UnassignedAbleFieldValue ? ErrorUnassignedAbleFieldValue : NoUndefinedAndBannedTypes | allFieldsPossiblyReadAsUndefined>; export {};