/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import type { Schema } from "#model";
import { Val } from "#protocol";
import { RootSupervisor } from "../../../supervision/RootSupervisor.js";
import type { ValueSupervisor } from "../../../supervision/ValueSupervisor.js";
/**
 * For structs we generate a class with accessors for each property in the schema.
 */
export declare function StructManager(owner: RootSupervisor, schema: Schema): ValueSupervisor.Manage;
export declare namespace StructManager {
    /**
     * If a struct is referenced as a whole, fields for which the session are unauthorized are simply omitted.
     *
     * This function instead throws an error for unauthorized access.  It must be invoked before direct property reads.
     *
     * @deprecated remove with old API
     *
     * @param struct a managed struct
     * @param attributeId the AttributeId to read
     */
    function assertDirectReadAuthorized(struct: Val.Struct, attributeId: number): void;
}
//# sourceMappingURL=StructManager.d.ts.map