import mongoose from 'mongoose';
import { QueryLoggerOptions, TargetMethod, ExplainMethod, QueryLogger, ExplainLogger } from './types';
export declare class MongooseQueryLogger {
    private options;
    constructor(options?: Partial<QueryLoggerOptions>);
    setQueryMethods({ targetMethods, explainMethods, }?: {
        targetMethods?: TargetMethod[];
        explainMethods?: ExplainMethod[];
    }): this;
    setExplain(explain?: boolean): this;
    setAdditionalLogProperties(logAdditionalProperties?: boolean): this;
    setQueryLogger(queryLogger: QueryLogger): this;
    setExplainLogger(explainLogger: ExplainLogger): this;
    private getPreQueryHook;
    private getPostQueryHook;
    private getPostAggregateHook;
    getPlugin(): (schema: mongoose.Schema) => void;
}
