import { Document } from 'mongodb';
export interface MongoDBConfig {
    uri: string;
    database: string;
    options?: {
        maxPoolSize?: number;
        serverSelectionTimeoutMS?: number;
        socketTimeoutMS?: number;
        connectTimeoutMS?: number;
    };
}
export interface QueryResult {
    success: boolean;
    data?: Document[];
    error?: string;
    count?: number;
    executionTime?: number;
}
export declare class MongoDBManager {
    private config;
    private client;
    private db;
    constructor(config: MongoDBConfig);
    connect(): Promise<boolean>;
    disconnect(): Promise<void>;
    executeAggregation(collectionName: string, pipeline: Document[]): Promise<QueryResult>;
    executeFind(collectionName: string, filter?: Document, options?: any): Promise<QueryResult>;
    testConnection(): Promise<boolean>;
    listCollections(): Promise<QueryResult>;
    getCollectionStats(collectionName: string): Promise<QueryResult>;
}
