import type { Message, AgentResult, ToolCall } from "../shared/types.js"; export interface PluginContext { agentId: string; sessionId?: string; metadata?: Record; } export interface PluginHooks { beforeRequest?: (messages: Message[], ctx: PluginContext) => Promise | Message[]; afterResponse?: (result: AgentResult, ctx: PluginContext) => Promise | AgentResult; onToolCall?: (tool: ToolCall, ctx: PluginContext) => Promise | void; onError?: (error: Error, ctx: PluginContext) => Promise | void; } export interface AgentPlugin { name: string; version?: string; setup?: (ctx: PluginContext) => Promise | void; hooks?: PluginHooks; } export declare function definePlugin(plugin: AgentPlugin): AgentPlugin; export declare function runPluginHook(plugins: AgentPlugin[], hook: K, ctx: PluginContext, ...args: Parameters>): Promise> | undefined>; //# sourceMappingURL=types.d.ts.map