import type { AnyType } from "../data-types/type-types";
import type { InferDType, ReWrap } from "../data-types/type-utils";
import { AggregateValidationError, ValidationError } from "./validation-error/validation-error";
type ValidationResults<T> = {
    success: false;
    error: ValidationError | AggregateValidationError;
} | {
    success: true;
    value: T;
};
type Validator<T> = (data: unknown) => data is T;
type ValidatorWithDetails<T> = (data: unknown) => ValidationResults<T>;
export declare function validator<DT extends AnyType>(dataType: DT): Validator<ReWrap<InferDType<DT>>>;
export declare function validator<DT extends AnyType>(dataType: DT, options: {
    details: true;
}): ValidatorWithDetails<ReWrap<InferDType<DT>>>;
export declare function validateWith<DT extends AnyType>(dataType: DT, value: any): ValidationResults<ReWrap<InferDType<DT>>>;
export {};
