import { createHookRunner } from "./hooks.js"; import type { PluginRegistry } from "./registry.js"; import type { PluginHookAgentContext, PluginHookRegistration } from "./types.js"; export declare function createMockPluginRegistry(hooks: Array<{ hookName: string; handler: (...args: unknown[]) => unknown; pluginId?: string; }>): PluginRegistry; export declare const TEST_PLUGIN_AGENT_CTX: PluginHookAgentContext; export declare function addTestHook(params: { registry: PluginRegistry; pluginId: string; hookName: PluginHookRegistration["hookName"]; handler: PluginHookRegistration["handler"]; priority?: number; timeoutMs?: number; }): void; export declare function addStaticTestHooks(registry: PluginRegistry, params: { hookName: PluginHookRegistration["hookName"]; hooks: ReadonlyArray<{ pluginId: string; result: TResult; priority?: number; handler?: () => TResult | Promise; }>; }): void; export declare function createHookRunnerWithRegistry(hooks: Array<{ hookName: string; handler: (...args: unknown[]) => unknown; pluginId?: string; }>, options?: Parameters[1]): { registry: PluginRegistry; runner: { runBeforeModelResolve: (event: import("./hook-before-agent-start.types.ts").PluginHookBeforeModelResolveEvent, ctx: PluginHookAgentContext) => Promise; runAgentTurnPrepare: (event: import("./host-hook-turn-types.ts").PluginAgentTurnPrepareEvent, ctx: PluginHookAgentContext) => Promise; runBeforePromptBuild: (event: import("./hook-before-agent-start.types.ts").PluginHookBeforePromptBuildEvent, ctx: PluginHookAgentContext) => Promise; runBeforeAgentStart: (event: import("./hook-before-agent-start.types.ts").PluginHookBeforeAgentStartEvent, ctx: PluginHookAgentContext) => Promise; runBeforeAgentReply: (event: import("./hook-types.ts").PluginHookBeforeAgentReplyEvent, ctx: PluginHookAgentContext) => Promise; runModelCallStarted: (event: import("./hook-types.ts").PluginHookModelCallStartedEvent, ctx: PluginHookAgentContext) => Promise; runModelCallEnded: (event: import("./hook-types.ts").PluginHookModelCallEndedEvent, ctx: PluginHookAgentContext) => Promise; runLlmInput: (event: import("./hook-types.ts").PluginHookLlmInputEvent, ctx: PluginHookAgentContext) => Promise; runLlmOutput: (event: import("./hook-types.ts").PluginHookLlmOutputEvent, ctx: PluginHookAgentContext) => Promise; runBeforeAgentFinalize: (event: import("./hook-types.ts").PluginHookBeforeAgentFinalizeEvent, ctx: PluginHookAgentContext) => Promise; runAgentEnd: (event: import("./hook-types.ts").PluginHookAgentEndEvent, ctx: PluginHookAgentContext) => Promise; runBeforeCompaction: (event: import("./hook-types.ts").PluginHookBeforeCompactionEvent, ctx: PluginHookAgentContext) => Promise; runAfterCompaction: (event: import("./hook-types.ts").PluginHookAfterCompactionEvent, ctx: PluginHookAgentContext) => Promise; runBeforeReset: (event: import("./hook-types.ts").PluginHookBeforeResetEvent, ctx: PluginHookAgentContext) => Promise; runInboundClaim: (event: import("./hook-message.types.ts").PluginHookInboundClaimEvent, ctx: import("./hook-message.types.ts").PluginHookInboundClaimContext) => Promise; runInboundClaimForPlugin: (pluginId: string, event: import("./hook-message.types.ts").PluginHookInboundClaimEvent, ctx: import("./hook-message.types.ts").PluginHookInboundClaimContext) => Promise; runInboundClaimForPluginOutcome: (pluginId: string, event: import("./hook-message.types.ts").PluginHookInboundClaimEvent, ctx: import("./hook-message.types.ts").PluginHookInboundClaimContext) => Promise; runMessageReceived: (event: import("./hook-message.types.ts").PluginHookMessageReceivedEvent, ctx: import("./hook-message.types.ts").PluginHookMessageContext) => Promise; runBeforeDispatch: (event: import("./hook-types.ts").PluginHookBeforeDispatchEvent, ctx: import("./hook-types.ts").PluginHookBeforeDispatchContext) => Promise; runReplyDispatch: (event: import("./hook-types.ts").PluginHookReplyDispatchEvent, ctx: import("./hook-types.ts").PluginHookReplyDispatchContext) => Promise; runMessageSending: (event: import("./hook-message.types.ts").PluginHookMessageSendingEvent, ctx: import("./hook-message.types.ts").PluginHookMessageContext) => Promise; runMessageSent: (event: import("./hook-message.types.ts").PluginHookMessageSentEvent, ctx: import("./hook-message.types.ts").PluginHookMessageContext) => Promise; runBeforeToolCall: (event: import("./hook-types.ts").PluginHookBeforeToolCallEvent, ctx: import("./hook-types.ts").PluginHookToolContext) => Promise; runAfterToolCall: (event: import("./hook-types.ts").PluginHookAfterToolCallEvent, ctx: import("./hook-types.ts").PluginHookToolContext) => Promise; runToolResultPersist: (event: import("./hook-types.ts").PluginHookToolResultPersistEvent, ctx: import("./hook-types.ts").PluginHookToolResultPersistContext) => import("./hook-types.ts").PluginHookToolResultPersistResult | undefined; runBeforeMessageWrite: (event: import("./hook-types.ts").PluginHookBeforeMessageWriteEvent, ctx: { agentId?: string; sessionKey?: string; }) => import("./hook-types.ts").PluginHookBeforeMessageWriteResult | undefined; runSessionStart: (event: import("./hook-types.ts").PluginHookSessionStartEvent, ctx: import("./hook-types.ts").PluginHookSessionContext) => Promise; runSessionEnd: (event: import("./hook-types.ts").PluginHookSessionEndEvent, ctx: import("./hook-types.ts").PluginHookSessionContext) => Promise; runSubagentSpawning: (event: import("./hook-types.ts").PluginHookSubagentSpawningEvent, ctx: import("./hook-types.ts").PluginHookSubagentContext) => Promise; runSubagentDeliveryTarget: (event: import("./hook-types.ts").PluginHookSubagentDeliveryTargetEvent, ctx: import("./hook-types.ts").PluginHookSubagentContext) => Promise; runSubagentSpawned: (event: import("./hook-types.ts").PluginHookSubagentSpawnedEvent, ctx: import("./hook-types.ts").PluginHookSubagentContext) => Promise; runSubagentEnded: (event: import("./hook-types.ts").PluginHookSubagentEndedEvent, ctx: import("./hook-types.ts").PluginHookSubagentContext) => Promise; runGatewayStart: (event: import("./hook-types.ts").PluginHookGatewayStartEvent, ctx: import("./hook-types.ts").PluginHookGatewayContext) => Promise; runGatewayStop: (event: import("./hook-types.ts").PluginHookGatewayStopEvent, ctx: import("./hook-types.ts").PluginHookGatewayContext) => Promise; runHeartbeatPromptContribution: (event: import("./host-hook-turn-types.ts").PluginHeartbeatPromptContributionEvent, ctx: PluginHookAgentContext) => Promise; runCronChanged: (event: import("./hook-types.ts").PluginHookCronChangedEvent, ctx: import("./hook-types.ts").PluginHookGatewayContext) => Promise; runBeforeInstall: (event: import("./hook-types.ts").PluginHookBeforeInstallEvent, ctx: import("./hook-types.ts").PluginHookBeforeInstallContext) => Promise; hasHooks: (hookName: import("./hook-types.ts").PluginHookName) => boolean; getHookCount: (hookName: import("./hook-types.ts").PluginHookName) => number; }; };