/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import type { Val } from "@matter/protocol";
import type { Supervision } from "./Supervision.js";
/**
 * Global configuration that persists across sessions.  Children are lazily created and cached.
 */
export declare class GlobalConfig implements Supervision.Config {
    #private;
    get supervision(): Supervision | undefined;
    set supervision(supervision: Supervision | undefined);
    child(key: string | number): GlobalConfig;
    readonlyChild(key: string | number): GlobalConfig | undefined;
    /**
     * Iterate over all existing children.
     */
    forEachChild(fn: (key: string | number, child: GlobalConfig) => void): void;
}
/**
 * Session-scoped configuration that wraps a {@link GlobalConfig}.  Local overrides shadow global values.
 */
export declare class LocalConfig implements Supervision.Config {
    #private;
    constructor(global: GlobalConfig);
    get supervision(): Supervision | undefined;
    set supervision(supervision: Supervision | undefined);
    child(key: string | number): LocalConfig;
    readonlyChild(key: string | number): LocalConfig | undefined;
}
/**
 * Non-allocating lookup of the {@link Supervision.Config} for an object.  Returns undefined if unconfigured.
 */
export declare function maybeConfigOf(object: Val.Struct): Supervision.Config | undefined;
/**
 * Non-allocating lookup of field-level {@link Supervision} for a specific field.  Returns undefined if unconfigured.
 */
export declare function maybeConfigOf(object: Val.Struct, fieldName: string): Supervision | undefined;
/**
 * Non-allocating lookup of command-level config for a behavior constructor.  Walks the prototype chain.
 */
export declare function maybeConfigOf(constructor: Function, methodName: string): Supervision.Config | undefined;
/**
 * Module-level storage for bare (unmanaged) objects.  Shared with {@link Supervision} factory.
 */
export declare const bareObjectConfigs: WeakMap<object, GlobalConfig>;
/**
 * Module-level storage for per-command configs keyed by behavior prototype.
 *
 * Key: `constructor.prototype`; value: map from method name → {@link GlobalConfig} tree.
 */
export declare const commandSupervisionConfigs: WeakMap<object, Map<string, GlobalConfig>>;
/**
 * Non-allocating lookup of the command-level config for a behavior constructor.  Walks the prototype chain and merges
 * configs from base classes (earliest prototype provides defaults, later prototypes overlay).
 */
export declare function maybeConfigOfConstructor(prototype: object, methodName: string): GlobalConfig | undefined;
//# sourceMappingURL=SupervisionConfig.d.ts.map