import { DatabaseDriver } from './drivers/DriverInterface.js';
import { ModelMetadata } from './types.js';
import { QueryBuilder } from './QueryBuilder.js';
export declare class Repository<T = any> {
    private driver;
    private metadata;
    constructor(driver: DatabaseDriver, metadata: ModelMetadata);
    get collection(): string;
    find(where?: Partial<T>): Promise<T[]>;
    findOne(where: Partial<T>): Promise<T | null>;
    insert(data: Partial<T>): Promise<T>;
    update(where: Partial<T>, data: Partial<T>): Promise<number>;
    delete(where: Partial<T>): Promise<number>;
    count(where?: Partial<T>): Promise<number>;
    query(): QueryBuilder<T>;
    private toWhereClauses;
}
