import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent"; import { type ChangeSummary, type WhatsNewRuntime } from "./whats-new.js"; /** * Compute startup summaries and, if any, emit a one-line passive notify * pointing the user at `/changelog`. Marks versions as seen via the * standard cache so subsequent sessions won't re-notify unless a new bump * occurs. Returns true when a notify was emitted. * * Pre-FORGE-BUG-001 this mounted the interactive strip directly; that was * removed because the strip captured the ↓ key for the whole session and * the auto-mount happened before the user had any chance to opt in. */ export declare function mountWhatsNewWidgetOnStartup(_pi: ExtensionAPI, ctx: ExtensionContext, rt: WhatsNewRuntime): Promise; /** * Mount the strip with a pre-computed summary list. Idempotent — a second * call unregisters the prior handler and replaces the widget surface. * Only `/changelog` calls this; startup notify does not. */ export declare function mountStripWithSummaries(_pi: ExtensionAPI, ctx: ExtensionContext, rt: WhatsNewRuntime, summaries: ChangeSummary[]): void; /** * Register the /changelog slash command (overrides pi's built-in): re-mounts * the interactive strip widget covering pi + forge-plugin + forge-cli changelogs. * `/changelog dismiss` clears the replay baseline. Headless / non-TTY callers * fall through to a text notify so the command is still usable. */ export declare function registerChangelogCommand(pi: ExtensionAPI, rt: WhatsNewRuntime): void;