import { MetaTypeCreator, ServerTimestamp, DocumentReference, DeleteField, DocumentSnapshot } from './types';
export declare const initializeApp: () => import("@firebase/app").FirebaseApp;
export declare type Parent = MetaTypeCreator<{
    a: 1;
}, 'topLevel', 'FirelordTest' | 'ForCursorTest'>;
export declare type User = MetaTypeCreator<{
    age: number;
    beenTo: (Record<'US', ('Hawaii' | 'California')[]> | Record<'China', ('Guangdong' | 'Shanghai')[]>)[];
    name: string;
    role: 'admin' | 'editor' | 'visitor';
    a: {
        b: {
            c: number;
            f: {
                g: boolean;
                h: Date;
                m: number;
            }[];
        };
        i: {
            j: number | DeleteField;
            l: Date;
        };
        e: string[];
        k: ServerTimestamp | DeleteField;
    };
}, 'Users', string, Parent>;
export declare const userRefCreator: (arg?: Parent['docID']) => Readonly<{
    doc: {
        <DocumentId extends string>(documentID: DocumentId extends never ? DocumentId : DocumentId extends import("./types").IsValidID<DocumentId, "Document", "ID"> ? string : import("./types").IsValidID<DocumentId, "Document", "ID">): DocumentReference<User>;
        <DocumentId_1 extends string>(firestore: import("./types").FirestoreAndFirestoreTesting, documentID: DocumentId_1 extends never ? DocumentId_1 : DocumentId_1 extends import("./types").IsValidID<DocumentId_1, "Document", "ID"> ? string : import("./types").IsValidID<DocumentId_1, "Document", "ID">): DocumentReference<User>;
    };
    collection: (firestore?: import("./types").FirestoreAndFirestoreTesting | undefined) => import(".").CollectionReference<User>;
    collectionGroup: (firestore?: import("./types").FirestoreAndFirestoreTesting | undefined) => import(".").Query<User>;
}>;
export declare const generateRandomData: () => User['write'];
export declare const compareWriteDataWithDocSnapData: (writeData: User['write'], docSnap: DocumentSnapshot<User>) => void;
export declare const readThenCompareWithWriteData: (writeData: User['write'], ref: DocumentReference<User>) => Promise<void>;
export declare const writeThenReadTest: (writeCallback: (data: ReturnType<typeof generateRandomData>) => Promise<DocumentReference<User>>) => Promise<void>;
