import EventProcessor from "./internal/event/EventProcessor"; import { Decision, Experiment, FeatureFlagDecision, HackleEvent, HackleUser, MatchValueType, RemoteConfigDecision, VariationKey } from "./internal/model/model"; import WorkspaceFetcher from "./internal/workspace/WorkspaceFetcher"; import { Comparable } from "./internal/util/Comparable"; import ExperimentEvaluator from "./internal/evaluation/evalautor/experiment/ExperimentEvaluator"; import RemoteConfigEvaluator from "./internal/evaluation/evalautor/remoteconfig/RemoteConfigEvaluator"; import { EvaluatorContext } from "./internal/evaluation/evalautor/Evaluator"; import { ManualOverrideStorage } from "./internal/evaluation/target/ManualOverrideStorage"; import UserEventFactory from "./internal/event/UserEventFactory"; import { InAppMessageEvaluatorRequest } from "./internal/evaluation/evalautor/iam/InAppMessageEvaluatorRequest"; import { InAppMessageEvaluatorEvaluation } from "./internal/evaluation/evalautor/iam/InAppMessageEvaluatorEvaluation"; import { InAppMessageEvaluator } from "./internal/evaluation/evalautor/iam/InAppMessageEvaluator"; /** * DO NOT use this class directly. * This class is only used internally by Hackle. * Backward compatibility is not supported. * Please use server-side or client-side HackleClient instead. */ export default class HackleCore { private readonly experimentEvaluator; private readonly remoteConfigEvaluator; private readonly workspaceFetcher; private readonly eventFactory; private readonly eventProcessor; private readonly errorDedupDeterminer; constructor(experimentEvaluator: ExperimentEvaluator, remoteConfigEvaluator: RemoteConfigEvaluator, workspaceFetcher: WorkspaceFetcher, eventFactory: UserEventFactory, eventProcessor: EventProcessor, errorDedupDeterminer: ErrorDedupDeterminer); static create(workspaceFetcher: WorkspaceFetcher, eventFactory: UserEventFactory, eventProcessor: EventProcessor, manualOverrideStorages: ManualOverrideStorage[]): HackleCore; getExperiment(experimentKey: number): Experiment | undefined; experiment(experimentKey: number, user: HackleUser, defaultVariation: VariationKey): Decision; experiments(user: HackleUser): Comparable; private experimentInternal; featureFlag(featureKey: number, user: HackleUser): FeatureFlagDecision; featureFlags(user: HackleUser): Comparable; private featureFlagInternal; inAppMessage(request: R, context: EvaluatorContext, evaluator: InAppMessageEvaluator): E; track(event: HackleEvent, user: HackleUser, timestamp?: number): void; trackException(exception: Error, user: HackleUser): void; flush(sync?: boolean): void; remoteConfig(parameterKey: string, user: HackleUser, requiredType: MatchValueType, defaultValue: string | number | boolean): RemoteConfigDecision; close(): void; } export declare class ErrorDedupDeterminer { private previous?; isDedupTarget(error: Error): boolean; _isSameError(currentError: Error, previousError?: Error): boolean; }