import type { ScoringHookInput } from '../evals/index.js';
import type { Handler } from './mitt.js';
export declare enum AvailableHooks {
    ON_EVALUATION = "onEvaluation",
    ON_GENERATION = "onGeneration",
    ON_SCORER_RUN = "onScorerRun"
}
export declare function registerHook(hook: AvailableHooks.ON_SCORER_RUN, action: Handler<ScoringHookInput>): void;
export declare function deregisterHook(hook: AvailableHooks.ON_SCORER_RUN, action: Handler<ScoringHookInput>): void;
export declare function executeHook(hook: AvailableHooks.ON_SCORER_RUN, action: ScoringHookInput): void;
/**
 * Number of handlers currently registered for a hook on the module-level
 * emitter. The emitter never drops handlers on its own, so leak regression
 * tests use this to assert that short-lived instances (e.g. a standalone
 * Agent's ephemeral Mastra) don't accumulate handlers (#19404).
 *
 * @internal test-only
 */
export declare function __hookHandlerCount(hook: `${AvailableHooks}`): number;
//# sourceMappingURL=index.d.ts.map