///
import { WriteStream } from 'fs';
import * as moment from 'moment';
export declare class Util {
static readonly ROOT = "__ROOT__";
static DEFAULT_BATCH_SIZE: number;
static batchSize: number;
static getRef(firestore: FirebaseFirestore.Firestore, path: string): ComplexRef;
static safeWrite(writeStream: WriteStream, chunk: string): Promise;
static batchExecutor(total: number, builder: (batchSize: number) => Promise[], batchSize?: number, batchDone?: () => void): Promise;
static getTimestamp(): string;
static getMoment(): moment.Moment;
static arrayChunks(array: Array, chunk_size: number): Array>;
static serializeSpecialTypes(data: any): any;
static unserializeSpecialTypes(data: any): any;
static isScalar(val: any): boolean;
}
export interface ComplexRef {
isRoot: boolean;
isDocument: boolean;
isCol: boolean;
ref: FirebaseFirestore.Firestore | FirebaseFirestore.DocumentReference | FirebaseFirestore.CollectionReference | any;
}