import * as admin from 'firebase-admin'; import { Data, ExpressRequest, ExpressResponse, FirestoreWhereFilterOp, IModel, ModelOptions, ModelSchema } from './interfaces'; export declare class Model implements IModel { static modelName: string; modelName: string; static request: ExpressRequest; request: ExpressRequest; static response: ExpressResponse; response: ExpressResponse; static firestore: admin.firestore.Firestore; firestore: admin.firestore.Firestore; static collection: string; collection: string; static schema: ModelSchema; schema: ModelSchema; collectionReference: admin.firestore.CollectionReference; documentReference: admin.firestore.DocumentReference; exists: boolean; createTime: admin.firestore.Timestamp; updateTime: admin.firestore.Timestamp; readTime: admin.firestore.Timestamp; private _idSchema; private _schema; private _fieldNames; private _originalData; private _data; private _writeResult; [key: string]: any; constructor(options: ModelOptions); init(options: ModelOptions): void; readonly fieldNames: string[]; set(target: Model, key: string, value: any): boolean; setValue(fieldName: string, value: any, storeToOriginal?: boolean): boolean; setValues(values: Data, storeToOriginal?: boolean): boolean; deleteField(fieldName: string): boolean; deleteFields(fieldNames: string[]): boolean; get(target: Model, key: string): any; getValue(fieldName: string): any; getValueForUpdate(fieldName: string): any; getValues(fieldNames?: string[]): Data; getValuesForUpdate(): Data; setId(id: string): boolean; getId(): string; update(values?: Data): Promise; setFromSnapshot(snapshot: admin.firestore.DocumentSnapshot | admin.firestore.QueryDocumentSnapshot): boolean; collectionReferenceError(reject: (reason?: any) => void): void; static collectionReferenceError(reject: (reason?: any) => void): void; create: any; static create(modelName_or_id?: string, _id?: string): Promise; add: any; static add(id: string, values: Data): Promise; find: any; static find(id_or_fieldName?: string, opStr?: FirestoreWhereFilterOp, value?: any): Promise; findById: any; static findById(id: string): Promise; findWhere: any; static findWhere(fieldName: string, opStr: FirestoreWhereFilterOp, value: any): Promise; findAll: any; static findAll(): Promise; private static _createAndRun; private _normalizeWriteResult; private static _normalizeElementSchema; private _normalizeSchema; }