/** * Message widget renderer. * Spec: §4.10 — Widget */ import type { Labels } from "@pi-orca/core"; export interface MessageWidgetItem { id: string; title: string; from: string; sentAt: string; labels: Labels; isNew: boolean; } /** * Render message lines for a given width. * * @param items - Message items to render * @param width - Terminal width * @returns Array of rendered lines */ export declare function renderMessageLines(items: MessageWidgetItem[], width: number): string[]; type WidgetComponent = { render(width: number): string[]; invalidate(): void; }; type WidgetFactory = (_tui: any, _theme: any) => WidgetComponent; /** * Create a component factory for the message widget. * * Pass the active `sessionId` so the widget can fetch the correct inbox; the * caller usually has it from `bindSession(ctx)` at `session_start`. * * @param sessionId - Session ID to peek inbox for (required to fetch messages) * @param projectSlug - Optional project slug * @param preloaded - Optional preloaded items (avoids first-render flash) * @returns Widget factory for ctx.ui.setWidget() */ export declare function createMessageWidgetFactory(sessionId?: string, projectSlug?: string, preloaded?: MessageWidgetItem[]): WidgetFactory; export {}; //# sourceMappingURL=widget.d.ts.map