/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { Status } from "#globals/Status.js";
import { StatusResponseError } from "./StatusResponseError.js";
/**
 * Base class for validation errors and used when Data validation fails. Please check the provided data.
 * We encode this as StatusResponseError that returns a ConstrainError which is suitable for most
 * "invalid/out-of-bounds values" cases. If you can use any of the more detailed errors derived from this class please
 * do so!
 */
export declare class ValidationError extends StatusResponseError {
    fieldName?: string | undefined;
    constructor(message: string, fieldName?: string | undefined, errorCode?: Status);
}
/** Validation error that is thrown when a value is out of bounds, but datatype and such is correct. */
export declare class ValidationOutOfBoundsError extends ValidationError {
}
/**
 * Validation error that is thrown when a value is of the wrong datatype. This is a more specific version of the
 * ValidationError class and returns an InvalidAction error.
 */
export declare class ValidationDatatypeMismatchError extends ValidationError {
    constructor(message: string, fieldName?: string);
}
/**
 * Validation error that is thrown when a mandatory field is missing. This is a more specific version of the
 * ValidationError class and returns an InvalidAction error.
 */
export declare class ValidationMandatoryFieldMissingError extends ValidationError {
    constructor(message: string, fieldName?: string);
}
/**
 * Convert a function that may throw a ValidationError into a boolean predicate.
 */
export declare function validatorOf<A extends any[]>(test: (...a: A) => void): (...a: A) => boolean;
//# sourceMappingURL=ValidationError.d.ts.map