import mongoose from "mongoose"; import { IDocumentValidator } from "./IDocumentValidator"; export interface IDocumentValidatorOptions { without?: { [name: string]: string[] | string; }; with?: { [name: string]: string[] | string; }; or?: Array>; and?: Array>; nand?: Array>; xor?: Array>; } export declare class DocumentValidator< T extends mongoose.Document = mongoose.Document > implements IDocumentValidator { private readonly schema; private readonly mongooseSchema; private readonly options; constructor(schema: mongoose.Schema, options?: IDocumentValidatorOptions); validate(document: T): Promise; private prepareObject; private createSchema; private build; private buildFromDef; private buildFieldFromDef; private buildObjectIdField; private buildNumberField; private buildStringField; private buildObjectField; private buildSchemaField; private buildArrayField; private isNativeType; }