/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { DefinitionError } from "../common/index.js";
import { Model } from "../models/index.js";
/**
 * Ensures that a model's definition is correct.  Places errors into the error
 * array of invalid models.
 *
 * Makes a few minor modifications to the model as a side effect:
 *
 * - Default values are cast to the correct type if possible
 * - Cross-references are deleted if they're redundant with the parent
 *
 * Note that we run validation against model classes rather than element
 * datatypes.  The classes implement type resolution, error handling and other
 * logic we rely on for validation.
 */
export declare function ValidateModel(model: Model): ValidateModel.Result;
export declare namespace ValidateModel {
    class Result {
        model: Model;
        elementCount: number;
        invalidElementCount: number;
        errorCounts: {
            [name: string]: number;
        };
        errors: DefinitionError[];
        get invalidElementPercent(): string;
        constructor(model: Model);
        report(): void;
    }
}
//# sourceMappingURL=ValidateModel.d.ts.map