/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
/**
 * Utilities for object introspection.
 */
export declare namespace Introspection {
    /**
     * Obtain a {@link PropertyDescriptor} from any level in {@link subject}'s
     * prototype chain.
     */
    function propertyDescriptorOf(subject: object, name: string): PropertyDescriptor | undefined;
    /**
     * Obtain {@link PropertyDescriptor}s from properties in any level of
     * {@link subject}'s prototype chain.
     */
    function propertyDescriptorsOf(subject: object): Record<string, PropertyDescriptor>;
    /**
     * Determine whether a single property of {@link subject} is readable
     * and/or writable.
     */
    function propertyAccessibilityOf(subject: object, name: string): PropertyAccessibility;
    /**
     * Obtain properties from {@link subject} and whether they're readable
     * and/or writable.
     */
    function objectAccessibilityOf(subject: object): ObjectAccessibilty;
    function propertyDescriptorToAccessibility(pd: PropertyDescriptor): PropertyAccessibility;
    interface PropertyAccessibility {
        readable: boolean;
        writable: boolean;
    }
    interface ObjectAccessibilty extends Record<string, PropertyAccessibility> {
    }
}
//# sourceMappingURL=Introspection.d.ts.map