import type { EntityData, EntityMetadata, EntityProperty, FilterQuery } from '../typings';
export declare class EntityValidator {
    private strict;
    KNOWN_TYPES: Set<string>;
    constructor(strict: boolean);
    validate<T extends object>(entity: T, payload: any, meta: EntityMetadata<T>): void;
    validateRequired<T extends object>(entity: T): void;
    validateProperty<T extends object>(prop: EntityProperty, givenValue: any, entity: T): any;
    validateParams(params: any, type?: string, field?: string): void;
    validatePrimaryKey<T>(entity: EntityData<T>, meta: EntityMetadata<T>): void;
    validateEmptyWhere<T>(where: FilterQuery<T>): void;
    private getValue;
    private setValue;
    private validateCollection;
    private fixTypes;
    private fixDateType;
    private fixNumberType;
    private fixBooleanType;
}
