export interface PlugkitHookResult { ok: boolean; output?: string; reason?: string } export type PlugkitHook = (payload?: string | Record) => PlugkitHookResult export interface PlugkitInstance { instance: WebAssembly.Instance preToolUse: PlugkitHook postToolUse: PlugkitHook sessionStart: PlugkitHook sessionEnd: PlugkitHook userPromptSubmit: PlugkitHook promptSubmit: PlugkitHook preCompact: PlugkitHook postCompact: PlugkitHook stop: PlugkitHook stopGit: PlugkitHook } export interface LoadPlugkitOptions { url: string storage?: 'opfs' | 'idb' } export function loadPlugkit(opts: LoadPlugkitOptions): Promise export function wrapHookCalls(instance: WebAssembly.Instance): PlugkitInstance