import { Audience, Condition, OptimizelyUserContext } from '../../shared_types'; import { LoggerFacade } from '../../logging/logger'; import { Platform } from '../../platform_support'; export declare class AudienceEvaluator { private logger?; private typeToEvaluatorMap; /** * Construct an instance of AudienceEvaluator with given options * @param {Object=} UNSTABLE_conditionEvaluators A map of condition evaluators provided by the consumer. This enables matching * condition types which are not supported natively by the SDK. Note that built in * Optimizely evaluators cannot be overridden. * @constructor */ constructor(UNSTABLE_conditionEvaluators: unknown, logger?: LoggerFacade); /** * Determine if the given user attributes satisfy the given audience conditions * @param {Array, audiencesById: { [id: string]: Audience; }, user: OptimizelyUserContext): boolean; /** * Wrapper around evaluator.evaluate that is passed to the conditionTreeEvaluator. * Evaluates the condition provided given the user attributes if an evaluator has been defined for the condition type. * @param {OptimizelyUserContext} user Optimizely user context containing attributes and segments * @param {Condition} condition A single condition object to evaluate. * @return {boolean|null} true if the condition is satisfied, null if a matcher is not found. */ evaluateConditionWithUserAttributes(user: OptimizelyUserContext, condition: Condition): boolean | null; } export default AudienceEvaluator; export declare const createAudienceEvaluator: (UNSTABLE_conditionEvaluators: unknown, logger?: LoggerFacade) => AudienceEvaluator; export declare const __platforms: Platform[];