import { VariableAndMetadata } from '@devcycle/js-cloud-server-sdk';
import { DevCycleUser, DVCVariable } from '../../src/';
import { EvalHook } from './EvalHook';
import { HookContext, HookMetadata } from './HookContext';
import { DVCLogger } from '@devcycle/types';
import { VariableValue as DVCVariableValue } from '@devcycle/types';
export declare class EvalHooksRunner {
    private readonly hooks;
    private readonly logger?;
    constructor(hooks?: EvalHook[], logger?: DVCLogger | undefined);
    runHooksForEvaluation<T extends DVCVariableValue>(user: DevCycleUser, key: string, defaultValue: T, metadata: HookMetadata, resolver: (context: HookContext<T>) => VariableAndMetadata<T>): DVCVariable<T>;
    private runBefore;
    private runAfter;
    private runFinally;
    private runError;
    enqueue(hook: EvalHook): void;
}
