import type { AgentSessionRuntime, SessionInfo } from "@earendil-works/pi-coding-agent"; import type { PopupMenuItem } from "../../ui.js"; import type { Entry, ModelMenuValue, QueueMessageMenuValue, ResumeMenuValue, SessionModel, SlashCommand, ThinkingLevel, ThinkingMenuValue, UserMessageJumpMenuValue, UserMessageMenuValue } from "../types.js"; export type AppMenuItemsControllerHost = { runtime(): AgentSessionRuntime | undefined; draftModelState?(): { models: readonly SessionModel[]; modelRef?: string; thinkingLevel?: ThinkingLevel; } | undefined; visibleModels(): readonly string[] | undefined; getBuiltinSlashCommands(): readonly SlashCommand[]; getEntries(): readonly Entry[]; getResumeSessions(): readonly SessionInfo[]; getOpenSessionPaths?(): readonly string[]; }; export declare class AppMenuItemsController { private readonly host; private resumeMenuLoaderCache; private userMessageJumpItems; private userMessageJumpLoading; constructor(host: AppMenuItemsControllerHost); parseSlashInput(text: string): import("../types.js").ParsedSlashInput | undefined; getResourceSlashCommands(): SlashCommand[]; getSlashCommandMatches(query: string, limit?: number): import("../../fuzzy.js").FuzzyMatch[]; getSlashCommandMenuItems(query: string): PopupMenuItem[]; modelRef(model: SessionModel): string; getModelMenuItems(query: string, includeHidden?: boolean): PopupMenuItem[]; getThinkingMenuItems(query: string): PopupMenuItem[]; getUserMessageMenuItems(): PopupMenuItem[]; getUserMessageJumpMenuItems(query: string): PopupMenuItem[]; isUserMessageJumpLoading(): boolean; refreshUserMessageJumpMenuItems(): Promise; getQueueMessageMenuItems(): PopupMenuItem[]; getResumeMenuItems(query: string, limit?: number, options?: { draft?: boolean; }): PopupMenuItem[]; private getResumeMenuItemsLoader; private getAllSlashCommands; private isCurrentModel; private isVisibleModel; private getModelMenuModels; private thinkingLevelDescription; }