/** * @license * Copyright 2022-2026 Matter.js Authors * SPDX-License-Identifier: Apache-2.0 */ import { ClusterModel } from "@matter/model"; import type { NameDependentElements } from "./NameDependentElements.js"; import type { ValidatedElements } from "./ValidatedElements.js"; /** * Resolves element presence for conformance expressions that reference other sibling elements. * * Only processes elements in {@link NameDependentElements.interdependents} — elements whose conformance ASTs contain * actual sibling element name references that require dependency graph resolution. * * Algorithm: * * 1. Group initialization — each interdependent element starts in its own group. * * 2. Cycle detection — DFS through deps. Cycles (e.g., Pause↔Resume) merge into single groups. Already-resolved * deps become leaf nodes. Result: a DAG of groups. * * 3. Propagation (bottom-up) — for each group in reverse topological order: * - If any dep group is present → this group is present * - Otherwise use fallback: single-element groups apply their own fallback; cyclic groups are present only if ALL * members are implemented * * 4. Validate — compare computed presence vs actual implementation: * - Present + not implemented → error * - Absent + implemented → warning (remove from element sets) */ export declare function resolveInterElementConformance(elements: ValidatedElements, schema: ClusterModel, nameDependentElements: NameDependentElements): void; //# sourceMappingURL=inter-element-conformance.d.ts.map