import { type Theme } from "../../theme.js"; import { type ModelColorsConfig } from "../../config.js"; import type { PopupMenu } from "../../ui.js"; import type { ScreenStyler } from "../screen/screen-styler.js"; import type { Entry, ModelMenuValue, ModelThinkingMenuState, PixMenuItem, PixMenuOptions, QueueMessageMenuValue, RenderedLine, ResumeMenuValue, SlashCommand, UserMessageJumpMenuValue, UserMessageMenuValue } from "../types.js"; import type { AgentSession } from "@earendil-works/pi-coding-agent"; export type PopupMenuRendererHost = { readonly theme: Theme; readonly screenStyler: ScreenStyler; readonly entries: readonly Entry[]; readonly session: AgentSession | undefined; readonly modelColors?: ModelColorsConfig; readonly resumeLoading: boolean; readonly resumeSessionCount: number; readonly userMessageJumpLoading: boolean; }; export declare class PopupMenuRenderer { private readonly host; constructor(host: PopupMenuRendererHost); popupMenuWidth(columns: number): number; popupMenuMargin(columns: number): number; effectivePopupMenuWidth(columns: number): number; styleOverlayLine(row: number, line: RenderedLine, width: number, activeMenu: PopupMenu): string; overlayPlainText(line: RenderedLine, width: number): string; renderUserMessageMenu(width: number, menu: PopupMenu): RenderedLine[]; renderSlashCommandMenu(width: number, menu: PopupMenu): RenderedLine[]; renderModelMenu(width: number, menu: PopupMenu, state: ModelThinkingMenuState): RenderedLine[]; renderResumeMenu(width: number, menu: PopupMenu, state: { directQuery: string; allSessionsLoaded: boolean; loadedSessionCount: number; draft: boolean; }): RenderedLine[]; renderUserMessageJumpMenu(width: number, menu: PopupMenu, directQuery: string): RenderedLine[]; renderQueueMessageMenu(width: number, menu: PopupMenu): RenderedLine[]; renderSdkMenu(width: number, menu: PopupMenu>, request: { options: PixMenuOptions; } | undefined, directQuery: string): RenderedLine[]; private hasPopupActionItems; private labelDescriptionText; private userMessageActionForeground; private selectableItemVariant; private modelMenuItemSegments; private modelMenuItemColor; private queueMessageItemVariant; private sdkItemVariant; private sdkMenuItemSegments; private itemHighlightSegments; private highlightSegments; private descriptionHighlightSegments; private resumeMenuItemSegments; private popupMenuHeader; private popupLineForeground; private popupLineBackground; } export declare function formatPopupMenuHeader(title: string, width: number): string;