import type { AgentSession, AgentSessionRuntime } from "@earendil-works/pi-coding-agent"; import type { AppCommandController } from "../commands/command-controller.js"; import type { AppMenuItemsController } from "./menu-items-controller.js"; import type { AppPopupMenuController } from "./popup-menu-controller.js"; import type { AppQueuedMessageController } from "../session/queued-message-controller.js"; import type { Entry, SessionModel, SlashCommand, ThinkingLevel, UserMessageJumpMenuValue } from "../types.js"; import type { AppWorkspaceActionsController } from "../workspace/workspace-actions-controller.js"; export type AppPopupActionControllerHost = { runtime(): AgentSessionRuntime | undefined; inputScopeKey?(): string | undefined; isDraftTabActive?(): boolean; materializeDraftSession?(): Promise; selectDraftModel?(model: SessionModel, thinkingLevel: ThinkingLevel): void; awaitCurrentSessionExtensions(runtime?: AgentSessionRuntime): Promise; getBuiltinSlashCommands(): readonly SlashCommand[]; isRunning(): boolean; setInput(value: string): void; addEntry(entry: Entry): void; setStatus(status: string): void; setSessionStatus(session: AgentSession | undefined): void; showToast(message: string, kind: "success" | "error" | "warning" | "info"): void; visibleModels(): readonly string[] | undefined; saveVisibleModels(modelRefs: readonly string[]): readonly string[]; saveThinkingLevelForModel(modelRef: string, thinkingLevel: ThinkingLevel): void; render(): void; afterSessionReplacement(message?: string): void; openSessionInActiveDraftTab?(sessionPath: string): Promise; scrollToConversationEntry(entryId: string): boolean; scrollToUserMessageJumpTarget(target: UserMessageJumpMenuValue): Promise; }; export declare class AppPopupActionController { private readonly host; private readonly popupMenus; private readonly commandController; private readonly menuItems; private readonly queuedMessages; private readonly workspaceActions; constructor(host: AppPopupActionControllerHost, popupMenus: AppPopupMenuController, commandController: AppCommandController, menuItems: AppMenuItemsController, queuedMessages: AppQueuedMessageController, workspaceActions: AppWorkspaceActionsController); submitActivePopupMenu(): Promise; submitSlashCommand(text: string): Promise; private submitSelectedSlashCommand; private submitSelectedModel; private persistThinkingPreference; private toggleSelectedModelVisibility; clearVisibleModels(): boolean; private submitSelectedUserMessageAction; private submitSelectedUserMessageJump; private submitSelectedQueueMessageAction; private submitSelectedResume; private formatSlashCommandLine; private executeResourceSlashCommand; private captureScope; private isScopeActive; private isRuntimeActive; private getRuntime; private getIdleRuntime; }