import type { Component } from "@pk-nerdsaver-ai/pi-tui";
import type { InteractiveModeContext } from "../../modes/types";
import type { SessionObserverRegistry } from "../session-observer-registry";
export declare class SelectorController {
    #private;
    private ctx;
    constructor(ctx: InteractiveModeContext);
    /**
     * Shows a selector component in place of the editor.
     * @param create Factory that receives a `done` callback and returns the component and focus target
     */
    showSelector(create: (done: () => void) => {
        component: Component;
        focus: Component;
    }): void;
    showSettingsSelector(): void;
    showHistorySearch(): void;
    /**
     * Show the Extension Control Center dashboard.
     * Replaces /status with a unified view of all providers and extensions.
     */
    showExtensionsDashboard(): Promise<void>;
    /**
     * Show the Agent Control Center dashboard.
     */
    showAgentsDashboard(): Promise<void>;
    /**
     * Handle setting changes from the settings selector.
     * Most settings are saved directly via SettingsManager in the definitions.
     * This handles side effects and session-specific settings.
     */
    handleSettingChange(id: string, value: unknown): void;
    showModelSelector(options?: {
        temporaryOnly?: boolean;
    }): void;
    showPluginSelector(mode?: "install" | "uninstall"): Promise<void>;
    showUserMessageSelector(): void;
    showCopySelector(): void;
    showTreeSelector(): void;
    showSessionSelector(): Promise<void>;
    showBackgroundInstanceSelector(): Promise<void>;
    handleResumeSession(sessionPath: string): Promise<void>;
    handleNewSession(query: string): Promise<void>;
    handleNewBackgroundSession(query: string): Promise<void>;
    handleSessionDeleteCommand(): Promise<void>;
    showOAuthSelector(mode: "login" | "logout", providerId?: string): Promise<void>;
    showResetUsageSelector(): Promise<void>;
    showDebugSelector(): Promise<void>;
    showAgentHub(observers: SessionObserverRegistry, options?: {
        requireContent?: boolean;
    }): void;
}
