import type { ControlPlaneSessionApiService } from '../services/sessions/control-plane-session-api-service.js';
import type { AssistantStreamBufferService } from '../services/sessions/assistant-stream-buffer-service.js';
import type { ControlPlaneDirectShellController } from './control-plane-direct-shell-controller.js';
import type { ControlPlaneSessionLoader } from './control-plane-session-loader.js';
import type { ControlPlaneSessionState } from './control-plane-session-state.js';
import type { ControlPlaneSlashCommandController } from './control-plane-slash-command-controller.js';
type ControlPlanePromptControllerOptions = {
    api: ControlPlaneSessionApiService;
    state: ControlPlaneSessionState;
    loader: ControlPlaneSessionLoader;
    assistantStreamBuffer: AssistantStreamBufferService;
    slashCommands: ControlPlaneSlashCommandController;
    directShell: ControlPlaneDirectShellController;
    refreshSessions: () => Promise<unknown>;
    refreshPendingApproval: (sessionId: string) => Promise<void>;
    formatError: (error: unknown) => string;
};
/**
 * Owns cli-v2 prompt intent routing and normal prompt submission.
 *
 * Prompt parsing rules stay in client-shared. Slash and direct-shell workflows
 * stay in their controllers. This controller owns the TUI-specific routing
 * between those paths plus normal prompt queue/run-accepted state transitions.
 */
export declare class ControlPlanePromptController {
    private readonly options;
    constructor(options: ControlPlanePromptControllerOptions);
    submitPrompt(prompt: string): Promise<void>;
    private submitNormalPrompt;
}
export {};
//# sourceMappingURL=control-plane-prompt-controller.d.ts.map