import { $t as DefaultRuleGroupType, Bt as RuleGroupTypeAny, Pt as DefaultRuleGroupTypeIC, R as RQBJsonLogic, V as RQBJsonLogicVar, g as JsonLogicRulesLogic, jn as Except, l as JsonLogicLessThan, on as ExpressionNode, rn as RuleType, u as JsonLogicLessThanOrEqual } from "./index-DOIE2pwx.mjs"; import { t as ParserCommonOptions } from "./import-BdKPtLzo.mjs"; //#region src/utils/parseJsonLogic/types.d.ts interface JsonLogicBetweenExclusive extends JsonLogicLessThan { "<": [JsonLogicRulesLogic, JsonLogicRulesLogic, JsonLogicRulesLogic]; } interface JsonLogicBetweenInclusive extends JsonLogicLessThanOrEqual { "<=": [JsonLogicRulesLogic, JsonLogicRulesLogic, JsonLogicRulesLogic]; } /** * A JsonLogic operand subtree that {@link ParseJsonLogicOptions.getExpression} may receive — * an arithmetic/function operation object, a variable reference, or a literal. */ type JsonLogicExpressionOperand = RQBJsonLogic; /** Context passed to {@link ParseJsonLogicOptions.getExpression}. */ interface ParseJsonLogicExpressionContext { /** Returns `true` if the field is configured (or if no `fields` were supplied). */ fieldExists: (fieldName: string) => boolean; } //#endregion //#region src/utils/parseJsonLogic/parseJsonLogic.d.ts /** * Options object for {@link parseJsonLogic}. */ interface ParseJsonLogicOptions extends ParserCommonOptions { jsonLogicOperations?: Record RuleType | RuleGroupTypeAny | false>; /** * Handler that converts a JsonLogic arithmetic/function operation object into an * {@link ExpressionNode}. Return `null` to reject (the rule is dropped). Supplied by * `@react-querybuilder/expr` (`expressionParserJsonLogic`). When omitted, expression * operands are ignored (rule dropped). */ getExpression?: (node: JsonLogicExpressionOperand, ctx: ParseJsonLogicExpressionContext) => ExpressionNode | null; } /** * Converts a JsonLogic object into a query suitable for the * {@link index!QueryBuilder QueryBuilder} component's `query` or `defaultQuery` props * ({@link index!DefaultRuleGroupType DefaultRuleGroupType}). */ declare function parseJsonLogic(rqbJsonLogic: string | RQBJsonLogic): DefaultRuleGroupType; /** * Converts a JsonLogic object into a query suitable for the * {@link index!QueryBuilder QueryBuilder} component's `query` or `defaultQuery` props * ({@link index!DefaultRuleGroupType DefaultRuleGroupType}). */ declare function parseJsonLogic(rqbJsonLogic: string | RQBJsonLogic, options: Except & { independentCombinators?: false; }): DefaultRuleGroupType; /** * Converts a JsonLogic object into a query suitable for the * {@link index!QueryBuilder QueryBuilder} component's `query` or `defaultQuery` props * ({@link index!DefaultRuleGroupTypeIC DefaultRuleGroupTypeIC}). */ declare function parseJsonLogic(rqbJsonLogic: string | RQBJsonLogic, options: Except & { independentCombinators: true; }): DefaultRuleGroupTypeIC; //#endregion //#region src/utils/parseJsonLogic/utils.d.ts declare const isRQBJsonLogicVar: (logic: unknown) => logic is RQBJsonLogicVar; /** * A JsonLogic comparison operand that is a candidate expression subtree: a plain object that * is not a variable reference (i.e. an arithmetic/function operation object). The * expr-supplied `getExpression` handler decides whether it maps to a known function. */ declare const isJsonLogicExpressionOperand: (logic: unknown) => logic is JsonLogicExpressionOperand; //#endregion export { JsonLogicBetweenExclusive, JsonLogicBetweenInclusive, JsonLogicExpressionOperand, ParseJsonLogicExpressionContext, ParseJsonLogicOptions, isJsonLogicExpressionOperand, isRQBJsonLogicVar, parseJsonLogic }; //# sourceMappingURL=parseJsonLogic.d.mts.map