import type { ControlPlaneSessionEventEnvelope } from '../../client-shared/api/types.js';
import type { AssistantStreamBufferService, AssistantStreamUpdate } from '../services/sessions/assistant-stream-buffer-service.js';
import type { ControlPlaneSessionLoader } from './control-plane-session-loader.js';
import type { ControlPlaneSessionState } from './control-plane-session-state.js';
type ControlPlaneLiveEventReducerOptions = {
    state: ControlPlaneSessionState;
    loader: ControlPlaneSessionLoader;
    assistantStreamBuffer: AssistantStreamBufferService;
    refreshSessions: () => Promise<unknown>;
    refreshPendingApproval: (sessionId: string) => Promise<void>;
};
/**
 * Owns cli-v2 reduction of control-plane live events into render state.
 *
 * Server events are the transport contract. Client-shared owns activity
 * semantics. This reducer owns only terminal snapshot effects: streaming text,
 * current activity, plan visibility, pending approval refresh triggers, and
 * latest-update state.
 */
export declare class ControlPlaneLiveEventReducer {
    private readonly options;
    constructor(options: ControlPlaneLiveEventReducerOptions);
    applySessionEvent(workspaceId: string, event: ControlPlaneSessionEventEnvelope): void;
    applyAssistantStreamUpdate(update: AssistantStreamUpdate): void;
}
export {};
//# sourceMappingURL=control-plane-live-event-reducer.d.ts.map