/**
 * @license
 * Copyright 2022-2024 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { FeatureSet, ValueModel } from "#model";
import { ValueSupervisor } from "../../supervision/ValueSupervisor.js";
/**
 * Generates JS function equivalent of a conformance expression.
 *
 * We generate a function for each node in the AST.  In addition to the function, we track whether the function
 * evaluates pure-feature conformance (vs. an expression).
 *
 * In general the conformance AST jumbles set logic with expression evaluation so we need to track two types of state to
 * implement properly.
 *
 * Many of the comments reference "static" vs "runtime" evaluation.  This is an important distinction that we use to
 * heavily optimize the generated function:
 *
 *   - "static" means conformance is known at compile time and runtime evaluation is thus minimal.  These result in a
 *     {@link StaticNode}.
 *
 *   - "runtime" means conformance depends on sibling fields in an object. These result in a {@link RuntimeNode} with
 *     additional logic that applies to operational state.
 */
export declare function astToFunction(schema: ValueModel, featureMap: ValueModel, supportedFeatures: FeatureSet): ValueSupervisor.Validate | undefined;
//# sourceMappingURL=conformance-compiler.d.ts.map