export type HookName = string;
export interface HookRegistration<TInput = unknown, TOutput = unknown> {
    priority: number;
    handler: (input: TInput, current: TOutput) => Promise<TOutput> | TOutput;
}
export declare class HookRunner {
    private readonly hooks;
    hasHandlers(name: HookName): boolean;
    register<TInput, TOutput>(name: HookName, handler: (input: TInput, current: TOutput) => Promise<TOutput> | TOutput, priority?: number): void;
    clear(name?: HookName): void;
    trigger<TOutput>(name: HookName, input: unknown, initial: TOutput): Promise<TOutput>;
}
