import { ISerializer, SerializationContext, SerializationResult } from '../../types';
export interface MongoDBQueryData {
    collection?: string;
    operation?: string;
    filter?: any;
    projection?: any;
    sort?: any;
    limit?: number;
    skip?: number;
    update?: any;
    options?: any;
    duration?: number;
    documentsAffected?: number;
    documentsReturned?: number;
}
export interface MongoDBAggregationData {
    collection?: string;
    pipeline?: any[];
    options?: any;
    duration?: number;
    documentsReturned?: number;
    stages?: string[];
}
export interface MongoDBErrorData {
    code?: number;
    codeName?: string;
    message: string;
    stack?: string;
    operation?: string;
    collection?: string;
    filter?: any;
    pipeline?: any[];
    writeErrors?: any[];
    writeConcernErrors?: any[];
}
export declare class MongoDBSerializer implements ISerializer {
    name: string;
    priority: number;
    canSerialize(data: any): boolean;
    getComplexity(data: any): 'low' | 'medium' | 'high';
    serialize(data: any, context: SerializationContext): Promise<SerializationResult>;
    private isMongoDBQuery;
    private isMongoDBAggregation;
    private isMongoDBError;
    private assessQueryComplexity;
    private assessAggregationComplexity;
    private serializeQuery;
    private serializeAggregation;
    private serializeError;
    private sanitizePipeline;
    private sanitizeObject;
}
//# sourceMappingURL=MongoDBSerializer.d.ts.map