export type ConditionOrOperator = (Operator | Condition);
export type Conditions = any;
export function allAudienceConditionsAreEdge(condition: any): boolean;
/**
 * Determine if conditions are satisfied.
 *
 * Ported from condition.compoundTest in js/client/condition.js
 *
 * @param {module:lib/condition~Conditions} conditions Conditions to apply. Evaluates recursively.
 *        ```Grammar: conditions := [("and"|"or"),? (conditions)+] | ["not", conditions] | leaf
 *        leaf := POJO```
 * @param {evaluatorFn} evaluator
 * @return {Boolean|undefined} true/false if a result can be determined; undefined if no result can be determined
 * (because evaluator does not return a defined value for some required condition)
 * @throws {Error} Any error thrown by the evaluator at any point during the recursive evaluation.
 */
export function evaluate(conditions: any, evaluator: evaluatorFn): boolean | undefined;
/**
 * @param {*} conditions
 *        ```Grammar: conditions := [("and"|"or"),? (conditions)+] | ["not", conditions] | leaf
 *        leaf := POJO```
 * @generator
 * @yields {Condition}
 *        The leaf values in the given conditions tree.
 */
export function getLeaves(conditions: any): any;
type Operator = string;
declare namespace Operator {
    let AND: string;
    let OR: string;
    let NOT: string;
}
export {};
