import { BaseEntity } from "./entities";
import { RepositoryUpdateData } from "./repository";
export interface EntityValidator<T extends BaseEntity> {
    onCreate(data: T): T;
    onUpdate(data: RepositoryUpdateData<T>): RepositoryUpdateData<T>;
}
export interface EntityValidatorOptions {
    createSchema: any;
    updateSchema: any;
}
export declare class JoiEntityValidator<T extends BaseEntity> implements EntityValidator<T> {
    private options;
    constructor(options: EntityValidatorOptions);
    onCreate(data: T): T;
    onUpdate(data: RepositoryUpdateData<T>): RepositoryUpdateData<T>;
}
