/** * @license * Copyright 2022-2026 Matter.js Authors * SPDX-License-Identifier: Apache-2.0 */ import { Behavior } from "#behavior/Behavior.js"; import { Environment, VariableService } from "@matter/general"; import { Endpoint } from "./Endpoint.js"; /** * Endpoint environmental configuration management. * * This class extracts behavior state properties from environment variables managed by {@link VariableService}. * * You can configure endpoints using this convention: * * - Configure nodes with `nodes.` subkey * * - Configure endpoints with `.parts.` subkey * * - Configure endpoint behaviors with `..` subkey * * Additionally you may configure behaviors globally (regardless of endpoint) using the * `behaviors..` subkey. Endpoint-specific configuration overrides this value. * * Environmental configuration overrides values supplied in {@link Endpoint.Configuration}. * * This effectively makes all state values configuration. It is settable via command line, system environment variable * or configuration file. * * For example, to set the vendor name for all nodes: * * ```bash * export MATTER_BASICINFORMATION_VENDORNAME="My Vendor Name" * ``` * * Or, to configure a light as on by default: * * ```bash * export MATTER_NODES_NODE1_PARTS_LIGHT_ONOFF_ONOFF=1 * ``` * * Perhaps better would be to implement the previous two examples using a configuration file: * * ```json * { * "basicInformation": { * "vendorName": "My Vendor Name" * }, * * "nodes": { * "node1": { * "parts": { * "light": { * "onOff": { * "onOff": true * } * } * } * } * } * } * ``` * * Matter.js automatically expands dotted names, so a more compact configuration option is: * * ```json * { * "basicInformation.vendorName": "My Vendor Name", * "nodes.node1.parts.light.onOff.OnOff": true, * } * ``` */ export declare class EndpointVariableService { #private; constructor(env: Environment); /** * Access the variable map for an instance of a behavior. */ forBehaviorInstance(endpoint: Endpoint, type: Behavior.Type): VariableService.Map; /** * Access the variable map for an endpoint. */ forEndpoint(endpoint: Endpoint): VariableService.Map; /** * Access the variable map for a type of behavior. */ forBehaviorType(type: Behavior.Type): VariableService.Map; } //# sourceMappingURL=EndpointVariableService.d.ts.map