import { type ControlPlaneSessionCreateInput } from '../services/sessions/control-plane-session-api-service.js';
import { type ControlPlaneSessionStoreOptions, type ControlPlaneSessionStoreSnapshot, type ControlPlaneSessionStoreStartInput } from './control-plane-session-state.js';
import type { ControlPlaneApprovalDecision, ControlPlanePermissionMode, ControlPlaneSessionView, ControlPlaneSlashCommandHint, ControlPlaneWorkspaceFileSuggestion } from '../../client-shared/api/types.js';
export type { ControlPlaneSessionStoreOptions, ControlPlaneSessionStoreSnapshot, ControlPlaneSessionStoreStartInput, } from './control-plane-session-state.js';
/**
 * Public facade for cli-v2 control-plane session state over the shared tRPC API.
 *
 * Keep this class thin by composition: workflow controllers own lifecycle and
 * state-transition behavior, while this facade preserves the stable API that
 * Ink components call. Shared activity/prompt policy stays in client-shared;
 * core/control-plane remains the source of truth for domain behavior.
 */
export declare class ControlPlaneSessionStore {
    private readonly api;
    private readonly state;
    private readonly subscriptions;
    private readonly assistantStreamBuffer;
    private readonly runStatePoller;
    private readonly loader;
    private readonly directShell;
    private readonly slashCommands;
    private readonly prompts;
    private readonly liveEvents;
    private readonly approvals;
    private readonly runs;
    constructor(options: ControlPlaneSessionStoreOptions);
    getSnapshot: () => ControlPlaneSessionStoreSnapshot;
    subscribe: (listener: () => void) => (() => void);
    start(input?: ControlPlaneSessionStoreStartInput): Promise<void>;
    dispose(): void;
    refreshSessions(): Promise<ControlPlaneSessionView[]>;
    searchWorkspaceFileMentions(query: string, limit?: number): Promise<ControlPlaneWorkspaceFileSuggestion[]>;
    createSession(input?: ControlPlaneSessionCreateInput): Promise<ControlPlaneSessionView>;
    selectSession(sessionId: string): Promise<void>;
    submitPrompt(prompt: string): Promise<void>;
    getSlashCommandHints(draft: string): ControlPlaneSlashCommandHint[];
    completeSlashCommandDraft(draft: string): string | undefined;
    selectModelFromPicker(modelId: string): Promise<void>;
    selectSessionFromPicker(sessionId: string): Promise<void>;
    selectReasoningFromPicker(reasoningEffort: string): Promise<void>;
    selectPermissionModeFromPicker(mode: ControlPlanePermissionMode): Promise<void>;
    cancelRun(): Promise<void>;
    resolvePendingApproval(decision: ControlPlaneApprovalDecision): Promise<void>;
    toggleCommandResultExpanded(): void;
    showLocalCommandMessage(message: string): void;
    private refreshSlashCommandCatalog;
    resolveDirectShellConfirmation(accepted: boolean): Promise<void>;
}
//# sourceMappingURL=control-plane-session-store.d.ts.map