export type ToolAfterProjectionFact = { kind: "tool-execute-after"; event: { type: "tool.execute.after"; properties: { sessionID: string; tool: string; status: "completed"; resultSummary: string; }; }; source: "plugin.tool.execute.after"; } | { kind: "ignored"; }; type ToolAfterInput = { tool: string; args?: Record; }; type ToolAfterOutput = { metadata?: unknown; [key: string]: unknown; }; /** * Resolves the session identifier that can anchor tool-after response shaping. * * @param args - Tool arguments from the OpenCode hook input. * @returns The first supported session identifier field, when present. */ export declare function resolveToolHookSessionId(args: Record | undefined): string | undefined; /** * Creates the composed tool-after hook for response shaping and projection facts. * * @param deps - Response-shaping dependencies only; no durable writers are accepted. * @returns A hook that injects guard metadata and returns projection facts. */ export declare function createToolExecuteAfterHook(deps: { toolGuardAfterHook: (input: ToolAfterInput & { sessionID?: string; }, output: ToolAfterOutput) => Promise; summarizeOutput: (output: unknown) => string; }): (input: ToolAfterInput, output?: ToolAfterOutput | string) => Promise; export {}; //# sourceMappingURL=tool-after-composer.d.ts.map