import { GetOddOrEvenSegments, EmptyObject } from './utils'; import { MetaType } from './metaTypeCreator'; import { Doc, Collection, DocCreator, CollectionCreator, CollectionGroupCreator, CollectionGroupFunction } from './refs'; import { Firestore } from './alias'; type Doc_ = { doc: Doc; }; type Collection_ = { collection: Collection; }; type CollectionGroup_ = { collectionGroup: CollectionGroupFunction; }; export type Creators = { docCreator: DocCreator; collectionCreator: CollectionCreator; collectionGroupCreator: CollectionGroupCreator; }; export type FirelordRef = Creators> = (unknown extends H['docCreator'] ? EmptyObject : Doc_) & (unknown extends H['collectionCreator'] ? EmptyObject : Collection_) & (unknown extends H['collectionGroupCreator'] ? EmptyObject : CollectionGroup_); export type GetFirelordShakable = >(creators: H) => GetFirelord; export type GetFirelord> = (firestore: Firestore, ...collectionIDs: GetOddOrEvenSegments) => FirelordRef; export {};