import { type CompactionOutcome } from "@pk-nerdsaver-ai/pi-agent-core/compaction";
import { type ProviderDetails, type UsageReport } from "@pk-nerdsaver-ai/pi-ai";
import type { CompactOptions } from "../../extensibility/extensions/types";
import { theme } from "../../modes/theme/theme";
import type { InteractiveModeContext } from "../../modes/types";
import { type ShakeMode } from "../../session/shake-types";
export declare class CommandController {
    #private;
    private readonly ctx;
    constructor(ctx: InteractiveModeContext);
    openInBrowser(urlOrPath: string): void;
    handleExportCommand(text: string): Promise<void>;
    handleDumpCommand(): void;
    handleAdvisorDumpCommand(isRaw?: boolean): void;
    handleDebugTranscriptCommand(): Promise<void>;
    handleShareCommand(): Promise<void>;
    handleSessionCommand(): Promise<void>;
    handleAdvisorStatusCommand(): Promise<void>;
    handleJobsCommand(): Promise<void>;
    handleUsageCommand(reports?: UsageReport[] | null): Promise<void>;
    handleChangelogCommand(showFull?: boolean): Promise<void>;
    handleHotkeysCommand(): void;
    handleToolsCommand(): void;
    handleContextCommand(): void;
    handleMemoryCommand(text: string): Promise<void>;
    handleClearCommand(): Promise<void>;
    handleFreshCommand(): Promise<void>;
    handleDropCommand(): Promise<void>;
    handleForkCommand(): Promise<void>;
    handleMoveCommand(targetPath: string): Promise<void>;
    handleRenameCommand(title: string): Promise<void>;
    handleBashCommand(command: string, excludeFromContext?: boolean): Promise<void>;
    handlePythonCommand(code: string, excludeFromContext?: boolean): Promise<void>;
    handleCompactCommand(customInstructions?: string, beforeFlush?: (outcome: CompactionOutcome) => void | Promise<void>): Promise<CompactionOutcome>;
    /**
     * TUI handler for `/shake`. `elide` drops heavy structural content and
     * `images` strips image blocks. Rebuilds the chat and reports counts.
     */
    handleShakeCommand(mode: ShakeMode): Promise<void>;
    handleSkillCommand(skillPath: string, args: string): Promise<void>;
    executeCompaction(customInstructionsOrOptions?: string | CompactOptions, isAuto?: boolean, beforeFlush?: (outcome: CompactionOutcome) => void | Promise<void>): Promise<CompactionOutcome>;
    handleHandoffCommand(customInstructions?: string): Promise<void>;
}
export declare function renderProviderSection(details: ProviderDetails, uiTheme: Pick<typeof theme, "fg">): string;
