/** * @license * Copyright 2022-2026 Matter.js Authors * SPDX-License-Identifier: Apache-2.0 */ import type { ServerNode } from "./ServerNode.js"; /** * Manages plugin loading and application for a {@link ServerNode}. * * Plugins are comma-separated module specifiers configured via the `plugins` variable, either globally * (`MATTER_PLUGINS`) or per-node (`MATTER_NODES__PLUGINS`). Both sources are merged with deduplication. * * String specifiers are resolved via the platform module loader (ESM `import()` or CJS `require()`). * * Module exports are classified by precedence: * - Named `install` function: called with the node * - `*Server` {@link Behavior} exports: installed on the root endpoint * - Single {@link EndpointType}: added as a child endpoint * - None of the above: side-effect only (no-op) * - Multiple server behaviors or device types without `install`: error * * Only exports whose name ends with "Server" are considered as behavior plugins. This matches the matter.js * convention where `*Server` is the implementation behavior, while `*Behavior` is the base class and `*Client` * is the client-side proxy. This allows standard behavior module paths (e.g. `@matter/node/behaviors/on-off`) * to work directly as plugin specifiers. */ export declare class Plugins { #private; constructor(node: ServerNode); /** * Load and apply all plugins. Called once during node initialization. */ load(): Promise; } export declare namespace Plugins { /** * The `install` export signature for plugin modules. */ type Installer = (node: ServerNode) => void; } //# sourceMappingURL=Plugins.d.ts.map