/** * @license * Copyright 2022-2026 Matter.js Authors * SPDX-License-Identifier: Apache-2.0 */ import { RootSupervisor } from "#behavior/supervision/RootSupervisor.js"; import { ValueModel } from "@matter/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 namespace astToFunction { interface Options { /** * Produce a validator only where the conformance refuses a value outright, judged with no record around it. * * A presence requirement, a conformance that cross-references another property and the membership of an enum * value are all left to the caller. This is what a caller wants when the value it judges is not a member of a * record — the bit of a bitmap, say, where the conformance says whether the bit may be set and nothing states * that it must be. */ refusalOnly?: boolean; } } export declare function astToFunction(schema: ValueModel, supervisor: RootSupervisor, options?: astToFunction.Options): ValueSupervisor.Validate | undefined; //# sourceMappingURL=conformance-compiler.d.ts.map