import ConditionMatcher from "./ConditionMatcher"; import { EvaluatorContext, EvaluatorRequest } from "../evalautor/Evaluator"; import { NumberOfEventsInDaysExpression, NumberOfEventsWithPropertyInDaysExpression, TargetCondition, TargetSegmentationExpression, UserTargetEvent } from "../../model/model"; import ValueOperatorMatcher from "./ValueOperatorMatcher"; import { Clock } from "../../util/TimeUtil"; export declare class UserTargetConditionMatcher implements ConditionMatcher { private readonly valueOperatorMatcher; private readonly clock; constructor(valueOperatorMatcher: ValueOperatorMatcher, clock: Clock); private supports; matches(request: EvaluatorRequest, context: EvaluatorContext, condition: TargetCondition): boolean; } declare abstract class TargetSegmentationExpressionMatcher { abstract valueOperatorMatcher: ValueOperatorMatcher; abstract matches(request: EvaluatorRequest, targetEvents: UserTargetEvent[], condition: TargetCondition): boolean; abstract convertTargetConditionToExpression(condition: TargetCondition): T; } export declare class NumberOfEventsInDaysMatcher extends TargetSegmentationExpressionMatcher { readonly valueOperatorMatcher: ValueOperatorMatcher; private readonly clock; constructor(valueOperatorMatcher: ValueOperatorMatcher, clock: Clock); matches(_request: EvaluatorRequest, targetEvents: UserTargetEvent[], condition: TargetCondition): boolean; private expressionMatch; convertTargetConditionToExpression(condition: TargetCondition): NumberOfEventsInDaysExpression; } export declare class NumberOfEventsWithPropertyInDaysMatcher extends TargetSegmentationExpressionMatcher { readonly valueOperatorMatcher: ValueOperatorMatcher; private readonly clock; constructor(valueOperatorMatcher: ValueOperatorMatcher, clock: Clock); matches(_request: EvaluatorRequest, targetEvents: UserTargetEvent[], condition: TargetCondition): boolean; private propertyMatch; private expressionMatch; convertTargetConditionToExpression(condition: TargetCondition): NumberOfEventsWithPropertyInDaysExpression; } export {};