import type { InboxEntry } from '../core/feed/inbox.js'; interface InputEventLike { type: 'input'; text: string; images?: unknown[]; source: 'interactive' | 'rpc' | 'extension'; } type InputEventResultLike = { action: 'continue'; } | { action: 'transform'; text: string; images?: unknown[]; } | { action: 'handled'; }; interface PiLike { on: (event: 'input', handler: (event: InputEventLike, ctx: any) => InputEventResultLike | void) => void; } /** * Render drained passive entries (oldest first) into one XML pre-text block. * Each accumulated message is its own timestamped `` element. */ export declare function formatPassive(entries: InboxEntry[]): string; /** * Register the passive-context drain on `pi`. * * Returns immediately (inert) when CRTR_NODE_ID is absent. The `input` handler * is the whole extension: drain on every message, prepend when non-empty. */ export declare function registerCanvasPassiveContext(pi: PiLike): void; export default registerCanvasPassiveContext;