/**************************************************************************** * Copyright 2018, 2021, Optimizely, Inc. and contributors * * * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and * * limitations under the License. * ***************************************************************************/ import { Platform } from '../../platform_support'; export declare const DEFAULT_OPERATOR_TYPES: string[]; export type ConditionTree = Leaf | unknown[]; type LeafEvaluator = (leaf: Leaf) => boolean | null; /** * Top level method to evaluate conditions * @param {ConditionTree} conditions Nested array of and/or conditions, or a single leaf * condition value of any type * Example: ['and', '0', ['or', '1', '2']] * @param {LeafEvaluator} leafEvaluator Function which will be called to evaluate leaf condition * values * @return {?boolean} Result of evaluating the conditions using the operator * rules and the leaf evaluator. A return value of null * indicates that the conditions are invalid or unable to be * evaluated. */ export declare function evaluate(conditions: ConditionTree, leafEvaluator: LeafEvaluator): boolean | null; export declare const __platforms: Platform[]; export {};