import { DVCVariable } from '../Variable';
import { DVCPopulatedUser } from '../User';
import { EvalHook } from './EvalHook';
import { DVCVariableValue } from '../types';
import { DVCLogger } from '@devcycle/types';
export declare class EvalHooksRunner {
    private hooks;
    private readonly logger?;
    constructor(hooks?: EvalHook<DVCVariableValue>[], logger?: DVCLogger | undefined);
    runHooksForEvaluation<T extends DVCVariableValue>(user: DVCPopulatedUser | undefined, key: string, defaultValue: T, resolver: () => DVCVariable<T>): DVCVariable<T>;
    private runBefore;
    private runAfter;
    private runFinally;
    private runError;
    enqueue(hook: EvalHook<DVCVariableValue>): void;
    clear(): void;
}
