import { FxError } from "@microsoft/teamsfx-api"; import { Result } from "neverthrow"; /** A value the evaluator yields. */ export type EvalValue = boolean | string; /** The grammar's `null` literal and declared-but-unanswered marker. */ export declare const NULL_VALUE: unique symbol; /** A resolved identifier's value: a string, or `NULL_VALUE` (unanswered / absent). */ export type ScopeValue = string | typeof NULL_VALUE; /** Resolved identifier map; absent names are errors, not falsy defaults. */ export type Scope = Record; /** Engine-owned, side-effect-free whitelist function. */ export type WhitelistFn = (...args: string[]) => string; /** Pure evaluator port: whitelist functions plus read-only feature flags. */ export interface ExpressionRuntimePort { /** The fixed function whitelist; `undefined` for any non-whitelisted name. */ functions(name: string): WhitelistFn | undefined; /** The feature-flag reader behind `featureFlag('…')` (env-backed, read-only). */ flags(name: string): boolean; } /** Authored expression form, raw or sugar. */ export type ExpressionNode = { expr: string; } | { equals: Record; } | { enum: Record; } | { anyOf: ExpressionNode[]; } | { featureFlag: string; } | { capability: string; } | { from: string; }; /** `SystemError` names for expression evaluation failures. */ export declare const EXPR_UNDECLARED_IDENTIFIER = "ExprUndeclaredIdentifier"; export declare const EXPR_NON_WHITELISTED_FUNCTION = "ExprNonWhitelistedFunction"; export declare const EXPR_PARSE_ERROR = "ExprParseError"; /** Evaluate one authored expression against a resolved namespace. */ export declare function evaluateExpression(node: ExpressionNode, scope: Scope, port: ExpressionRuntimePort): Result; //# sourceMappingURL=evaluateExpression.d.ts.map