import type { Collection, Document } from 'mongodb'; import { EventEmitter } from 'node:events'; import { MongoQueryBuilder } from './query_builder.js'; import type { MongoConnectionContract } from '../types/database.js'; import type { MongoModel } from '../model/base_model.js'; /** * Query client exposes the API to execute queries against a MongoDB connection */ export declare class MongoQueryClient { private connection; private emitter; constructor(connection: MongoConnectionContract, emitter: EventEmitter); /** * Returns the collection name with the prefix (if any) */ private getCollectionName; /** * Get a collection from the database */ collection(collectionName: string): Collection; /** * Create a query builder for a collection */ query(collectionName: string): MongoQueryBuilder; /** * Execute a raw query against the database */ rawQuery(collectionName: string, query: any, options?: any): Promise; /** * Execute a raw command against the database */ rawCommand(command: any): Promise; }