import type { MongooseRepositoryConfig, MongooseRepositoryModel } from './types';
import type { RepositoryPort } from '../types';
export declare abstract class AbstractMongooseRepository<D, I, O> implements RepositoryPort<MongooseRepositoryModel<D>, I, O> {
    private readonly adapter;
    constructor(config: MongooseRepositoryConfig<D>);
    get model(): MongooseRepositoryModel<D>;
    toLean(input: unknown): O | null;
    findById(id: string): Promise<O | null>;
    findMany(filter?: Record<string, unknown>): Promise<O[]>;
    create(entity: I): Promise<O>;
    update(id: string, update: Partial<I>): Promise<O | null>;
    delete(id: string): Promise<O | null>;
    exists(id: string): Promise<boolean>;
}
//# sourceMappingURL=repository.d.ts.map