import type { ControlPlaneSessionView } from '../../client-shared/api/types.js';
import type { ControlPlaneSessionApiService, ControlPlaneSessionCreateInput } from '../services/sessions/control-plane-session-api-service.js';
import type { ControlPlaneSessionSubscriptionService } from '../services/sessions/control-plane-session-subscription-service.js';
import type { AssistantStreamBufferService } from '../services/sessions/assistant-stream-buffer-service.js';
import type { ControlPlaneSessionState } from './control-plane-session-state.js';
type ControlPlaneSessionLoaderOptions = {
    api: ControlPlaneSessionApiService;
    state: ControlPlaneSessionState;
    subscriptions: ControlPlaneSessionSubscriptionService;
    assistantStreamBuffer: AssistantStreamBufferService;
    onRefreshPendingApproval: (sessionId: string) => Promise<void>;
    onError: (error: unknown) => string;
};
/**
 * Owns cli-v2 workspace/session loading and selection lifecycle.
 *
 * This is not a generic API proxy: it owns the ordering that makes a selected
 * session coherent for the TUI, including active-state reset, session detail
 * fetch, runtime context fetch, run-state mirror, pending approval refresh, and
 * event-stream subscription.
 */
export declare class ControlPlaneSessionLoader {
    private readonly options;
    constructor(options: ControlPlaneSessionLoaderOptions);
    refreshSessions(): Promise<ControlPlaneSessionView[]>;
    createSession(input?: ControlPlaneSessionCreateInput): Promise<ControlPlaneSessionView>;
    selectSession(sessionId: string): Promise<void>;
    refreshSession(sessionId: string, options?: {
        silent?: boolean;
    }): Promise<void>;
}
export {};
//# sourceMappingURL=control-plane-session-loader.d.ts.map