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