import { IFlagEvaluationDetails, FlagEvaluationDetailsBuilder } from './flag-evaluation-details-builder'; import { Flag, Shard, Range, Variation, VariationType, ConfigDetails } from './interfaces'; import { Rule } from './rules'; import { Sharder } from './sharders'; import { Attributes } from './types'; export interface FlagEvaluationWithoutDetails { flagKey: string; format: string; subjectKey: string; subjectAttributes: Attributes; allocationKey: string | null; variation: Variation | null; extraLogging: Record; doLog: boolean; entityId: number | null; } export interface FlagEvaluation extends FlagEvaluationWithoutDetails { flagEvaluationDetails: IFlagEvaluationDetails; } export declare class Evaluator { private readonly sharder; constructor(sharder?: Sharder); evaluateFlag(flag: Flag, configDetails: ConfigDetails, subjectKey: string, subjectAttributes: Attributes, obfuscated: boolean, expectedVariationType?: VariationType): FlagEvaluation; matchesShard(shard: Shard, subjectKey: string, totalShards: number): boolean; private getMatchedEvaluationCodeAndDescription; } export declare function isInShardRange(shard: number, range: Range): boolean; export declare function hashKey(salt: string, subjectKey: string): string; export declare function noneResult(flagKey: string, subjectKey: string, subjectAttributes: Attributes, flagEvaluationDetails: IFlagEvaluationDetails, format: string): FlagEvaluation; export declare function matchesRules(rules: Rule[], subjectAttributes: Attributes, obfuscated: boolean): { matched: boolean; matchedRule: Rule | null; }; export declare function overrideResult(flagKey: string, subjectKey: string, subjectAttributes: Attributes, overrideVariation: Variation, flagEvaluationDetailsBuilder: FlagEvaluationDetailsBuilder): FlagEvaluation; //# sourceMappingURL=evaluator.d.ts.map