import { createAgentSessionFromServices, createAgentSessionServices, SessionManager, type AgentSessionRuntime } from "@earendil-works/pi-coding-agent"; import type { PromptEnhancerConfig } from "../../config.js"; import type { InputEditor } from "../../input-editor.js"; import type { ToastNotifier } from "../../ui.js"; import type { TabInputState } from "../session/tabs-controller.js"; import type { SessionActivity } from "../types.js"; export type AppPromptEnhancerControllerHost = { runtime(): AgentSessionRuntime | undefined; inputEditor(): InputEditor; activeInputTabId(): string | undefined; isInputTabOwnedByRuntime(tabId: string | undefined, runtime: AgentSessionRuntime, session: AgentSessionRuntime["session"]): boolean; inputStateForTab(tabId: string | undefined): TabInputState | undefined; setInputStateForTab(tabId: string | undefined, state: TabInputState): void; promptEnhancerConfig(): PromptEnhancerConfig; resetInputAfterProgrammaticEdit(): void; setStatus(status: string): void; setSessionStatus(session: AgentSessionRuntime["session"] | undefined): void; setSessionActivity(activity: SessionActivity): void; toast: ToastNotifier; render(): void; }; type PromptEnhanceRunner = typeof enhancePromptWithPi; type PromptEnhancerPiDeps = { createAgentSessionServices: typeof createAgentSessionServices; createAgentSessionFromServices: typeof createAgentSessionFromServices; sessionManagerInMemory: typeof SessionManager.inMemory; }; export declare function setPromptEnhancerPiTestDeps(overrides?: Partial): void; type AppPromptEnhancerControllerOptions = { enhancePromptWithPi?: PromptEnhanceRunner; }; export declare class AppPromptEnhancerController { private readonly host; private enhancing; private readonly enhancePromptWithPi; constructor(host: AppPromptEnhancerControllerHost, options?: AppPromptEnhancerControllerOptions); statusWidgetText(): string; statusWidgetActive(): boolean; statusWidgetEnabled(): boolean; enhancePrompt(): Promise; private currentTarget; private applyEnhancedPrompt; private restoreSessionState; } export declare function promptEnhancerTextIsSufficient(text: string): boolean; declare function enhancePromptWithPi(runtime: AgentSessionRuntime, draft: string, config: PromptEnhancerConfig): Promise; export {};