import type { NotificationEvent } from '../../../../packages/core/src/domain/generated/output.js';
import type { AgentMessageStreamEvent, AgentQuestionStreamEvent, SupervisorDecisionStreamEvent } from '../../../../packages/core/src/application/use-cases/agents/stream-agent-events.use-case.js';
export type ConnectionStatus = 'connected' | 'connecting' | 'disconnected';
export interface UseAgentEventsOptions {
    runId?: string;
}
/**
 * Spec 093 — collaboration event union surfaced alongside the legacy
 * notification stream. Each member is a discriminated stream-event envelope
 * generated by the SSE pipeline; presentation consumers narrow on `kind`.
 */
export type CollaborationStreamEvent = AgentMessageStreamEvent | AgentQuestionStreamEvent | SupervisorDecisionStreamEvent;
export interface UseAgentEventsResult {
    events: NotificationEvent[];
    lastEvent: NotificationEvent | null;
    /** Spec 093 — agent message bus events for the per-feature activity feed. */
    agentMessages: AgentMessageStreamEvent[];
    lastAgentMessage: AgentMessageStreamEvent | null;
    /** Spec 093 — unified agent-question pipeline events for the inbox. */
    agentQuestions: AgentQuestionStreamEvent[];
    lastAgentQuestion: AgentQuestionStreamEvent | null;
    /** Spec 093 — supervisor decision events for the "Why?" drawer. */
    supervisorDecisions: SupervisorDecisionStreamEvent[];
    lastSupervisorDecision: SupervisorDecisionStreamEvent | null;
    connectionStatus: ConnectionStatus;
}
/**
 * Hook that receives real-time agent notification events via a Service Worker.
 *
 * The SW maintains a single SSE connection to /api/agent-events and
 * broadcasts events to all open tabs. Falls back to direct EventSource
 * when Service Workers are unavailable.
 */
export declare function useAgentEvents(options?: UseAgentEventsOptions): UseAgentEventsResult;
//# sourceMappingURL=use-agent-events.d.ts.map