/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { AttributeElement } from "../elements/index.js";
import { Model } from "./Model.js";
import { PropertyModel } from "./PropertyModel.js";
export declare const GLOBAL_IDS: Set<number>;
export declare class AttributeModel extends PropertyModel<AttributeElement> implements AttributeElement {
    tag: AttributeElement.Tag;
    get readable(): boolean;
    get writable(): boolean;
    get fabricScoped(): boolean;
    get fixed(): boolean;
    get changesOmitted(): boolean | undefined;
    get requiredFields(): {
        name: string;
        type?: string;
        description?: string;
        details?: string;
        xref?: import("./CrossReference.js").CrossReference.Definition;
        children?: (import("../elements/BaseElement.js").BaseElement[] & import("../elements/ValueElement.js").ValueElement[]) | undefined;
        isGlobal?: boolean;
        isSeed?: boolean;
        asOf?: import("../index.js").Specification.Revision;
        until?: import("../index.js").Specification.Revision;
        matchTo?: import("../elements/BaseElement.js").BaseElement.MatchDirective;
        constraint?: import("../index.js").Constraint.Definition;
        conformance?: import("../index.js").Conformance.Definition;
        access?: import("../index.js").Access.Definition;
        quality?: import("../index.js").Quality.Definition;
        byteSize?: import("../elements/ValueElement.js").ValueElement.ByteSize;
        default?: import("../index.js").FieldValue;
        id: number;
        tag: `${AttributeElement.Tag}`;
    };
    constructor(definition: Model.Definition<AttributeModel>, ...children: Model.ChildDefinition<AttributeModel>[]);
    static isGlobal(model: Model): boolean;
    static get globalIds(): Set<number>;
    static Tag: import("../index.js").ElementTag;
    static requiresId: boolean;
}
//# sourceMappingURL=AttributeModel.d.ts.map