/**
 * Dashboard Event Stream
 *
 * Centralized event bus that captures live events from all UAP subsystems
 * and streams them to connected web dashboard clients via SSE.
 *
 * Events are categorized by type:
 *   - policy: enforcement checks, blocks, stage changes
 *   - memory: lookups, hits, misses, consolidation
 *   - deploy: queue, batch, execute, complete
 *   - agent: register, start, progress, complete, error
 *   - task: create, start, complete, fail
 *   - skill: match, activate, deactivate
 *   - pattern: match, activate
 *   - cost: token usage, cost tracking
 *   - system: errors, warnings, info
 */
export type DashboardEventCategory = 'policy' | 'memory' | 'deploy' | 'agent' | 'task' | 'skill' | 'pattern' | 'cost' | 'system';
export interface DashboardEvent {
    id: number;
    timestamp: string;
    category: DashboardEventCategory;
    type: string;
    severity: 'info' | 'warn' | 'error' | 'success';
    title: string;
    detail?: string;
    metadata?: Record<string, unknown>;
}
type EventHandler = (event: DashboardEvent) => void;
declare class DashboardEventBus {
    private handlers;
    private history;
    private nextId;
    /**
     * Subscribe to all dashboard events.
     * Returns an unsubscribe function.
     */
    subscribe(handler: EventHandler): () => void;
    /**
     * Emit a new event to all subscribers.
     */
    emit(category: DashboardEventCategory, type: string, severity: DashboardEvent['severity'], title: string, detail?: string, metadata?: Record<string, unknown>): void;
    /**
     * Get recent event history.
     */
    getHistory(limit?: number): DashboardEvent[];
    /**
     * Get events since a specific event ID.
     */
    getEventsSince(lastId: number): DashboardEvent[];
    /**
     * Get subscriber count.
     */
    subscriberCount(): number;
    /**
     * Clear all history and handlers.
     */
    clear(): void;
}
export declare function getDashboardEventBus(): DashboardEventBus;
export declare function resetDashboardEventBus(): void;
export declare function emitPolicyEvent(type: string, title: string, allowed: boolean, detail?: string, metadata?: Record<string, unknown>): void;
export declare function emitMemoryEvent(type: string, title: string, hit: boolean, detail?: string, metadata?: Record<string, unknown>): void;
export declare function emitDeployEvent(type: string, title: string, severity?: DashboardEvent['severity'], detail?: string, metadata?: Record<string, unknown>): void;
export declare function emitAgentEvent(type: string, title: string, severity?: DashboardEvent['severity'], detail?: string, metadata?: Record<string, unknown>): void;
export declare function emitTaskEvent(type: string, title: string, severity?: DashboardEvent['severity'], detail?: string, metadata?: Record<string, unknown>): void;
export declare function emitSystemEvent(type: string, title: string, severity?: DashboardEvent['severity'], detail?: string, metadata?: Record<string, unknown>): void;
export {};
//# sourceMappingURL=event-stream.d.ts.map