/** * @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; /** * 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>; /** * 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