import type mongoose from "mongoose"; export interface StringField { type: StringConstructor; required?: boolean; unique?: boolean; index?: boolean; trim?: boolean; lowercase?: boolean; default?: string; enum?: readonly string[]; minlength?: number; select?: boolean; } export interface NumberField { type: NumberConstructor; required?: boolean; unique?: boolean; index?: boolean; default?: number; min?: number; max?: number | [number, string]; select?: boolean; } export interface BooleanField { type: BooleanConstructor; required?: boolean; unique?: boolean; index?: boolean; default?: boolean; select?: boolean; } export interface DateField { type: DateConstructor; required?: boolean; unique?: boolean; index?: boolean; default?: typeof Date.now | Date; min?: Date; max?: Date; select?: boolean; } export interface StringArrayField { type: [StringConstructor]; required?: boolean; index?: boolean; default?: string[]; select?: boolean; } export interface ObjectArrayField { type: [ObjectConstructor]; required?: boolean; index?: boolean; default?: object[] | (() => object[]); select?: boolean; } export interface ObjectIdField { type: typeof mongoose.Schema.Types.ObjectId; required?: boolean; unique?: boolean; index?: boolean; ref?: string; select?: boolean; } export interface EncryptedString { str: StringField; nonce: StringField; publicKey: StringField; securedPrivateKey: StringField; } export interface FileMetaDataField { storageKey: StringField; url: StringField; bytes?: NumberField; format?: StringField; mimeType?: StringField; resourceType?: StringField; width?: NumberField; height?: NumberField; } //# sourceMappingURL=Mongoose.d.ts.map