import type { SequelizeRepositoryConfig, SequelizeRepositoryModel } from './types';
import type { RepositoryPort } from '../types';
export declare abstract class AbstractSequelizeRepository<D extends object, I, O> implements RepositoryPort<SequelizeRepositoryModel<D>, I, O> {
    private readonly adapter;
    constructor(config: SequelizeRepositoryConfig<D>);
    get model(): SequelizeRepositoryModel<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