import type { L0EventHandler, EventType } from "../types/observability";
export declare class EventDispatcher {
    private handlers;
    private readonly streamId;
    private readonly _context;
    constructor(context?: Record<string, unknown>);
    onEvent(handler: L0EventHandler): void;
    offEvent(handler: L0EventHandler): void;
    emit<T extends Record<string, unknown>>(type: EventType, payload?: Omit<T, "type" | "ts" | "streamId" | "context">): void;
    emitSync<T extends Record<string, unknown>>(type: EventType, payload?: Omit<T, "type" | "ts" | "streamId" | "context">): void;
    getStreamId(): string;
    getContext(): Record<string, unknown>;
    getHandlerCount(): number;
}
export declare function createEventDispatcher(context?: Record<string, unknown>): EventDispatcher;
//# sourceMappingURL=event-dispatcher.d.ts.map