import { DatabaseDriver } from './DriverInterface.js';
import { QueryIR, ModelMetadata } from '../types.js';
interface MongoDriverConfig {
    uri: string;
    database?: string;
}
export declare class MongoDriver implements DatabaseDriver {
    private client;
    private db;
    private compiler;
    raw: any;
    connect(config: MongoDriverConfig): Promise<void>;
    disconnect(): Promise<void>;
    find(collection: string, query: QueryIR): Promise<any[]>;
    findOne(collection: string, query: QueryIR): Promise<any | null>;
    insert(collection: string, data: Record<string, any>): Promise<any>;
    update(collection: string, query: QueryIR, data: Record<string, any>): Promise<number>;
    delete(collection: string, query: QueryIR): Promise<number>;
    count(collection: string, query: QueryIR): Promise<number>;
    ensureSchema(metadata: ModelMetadata): Promise<void>;
    dropCollection(name: string): Promise<void>;
    listCollections(): Promise<string[]>;
    transaction<T>(fn: (session: any) => Promise<T>): Promise<T>;
    private extractDbName;
}
export {};
