import type { HookContext, HookResult, Capability } from './types'; export declare abstract class HookPlugin { abstract readonly name: string; abstract readonly version: string; abstract run(ctx: HookContext): Promise; readonly capabilities: { required: readonly Capability[]; }; } export interface HookPluginDefinition { name: string; version: string; capabilities?: { required: Capability[]; }; run(ctx: HookContext): Promise; } export declare function defineHookPlugin(def: HookPluginDefinition): HookPlugin;