/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { Access, Conformance, Constraint, Quality } from "../aspects/index.js";
import { RequirementElement } from "../elements/index.js";
import { Children } from "./Children.js";
import { FieldModel } from "./FieldModel.js";
import { Model } from "./Model.js";
export declare class RequirementModel extends Model<RequirementElement> implements RequirementElement {
    tag: RequirementElement.Tag;
    element: RequirementElement.ElementType;
    default?: any;
    get children(): Children<RequirementModel.Child>;
    set children(children: Children.InputIterable<RequirementModel.Child>);
    get discriminator(): RequirementElement.ElementType;
    get access(): Access;
    set access(definition: Access | Access.Definition);
    get constraint(): Constraint;
    set constraint(definition: Constraint | Constraint.Definition);
    get conformance(): Conformance;
    set conformance(definition: Conformance | Conformance.Definition);
    get quality(): Quality;
    set quality(definition: Quality | Quality.Definition);
    get requirements(): RequirementModel[];
    valueOf(): any;
    /**
     * Is the element mandatory?
     */
    get isMandatory(): boolean;
}
export declare namespace RequirementModel {
    type Child = RequirementModel | FieldModel;
}
//# sourceMappingURL=RequirementModel.d.ts.map