import type { EventEngine } from "./event-engine.interface";
import type { ObservabilityEngine, EventTracing } from "./observability.interface";
export declare class EmmettEngine implements EventEngine {
    private emitter;
    private observability;
    private handlerWrappers;
    private onceWrappers;
    private maxListeners;
    constructor(observability?: ObservabilityEngine | undefined);
    emit<T = any>(event: string, payload: T, tracing?: EventTracing): void;
    on<T = any>(event: string, handler: (payload: T) => void): void;
    once<T = any>(event: string, handler: (payload: T) => void): void;
    off(event?: string, handler?: (payload: any) => void): void;
    listeners(event: string): number;
    removeAllListeners(event?: string): void;
    eventNames(): string[];
    listenerCount(event: string): number;
    prependListener<T = any>(event: string, handler: (payload: T) => void): void;
    setMaxListeners(n: number): void;
    getMaxListeners(): number;
    rawListeners(event: string): Function[];
    hasListeners(event: string): boolean;
    clear(): void;
    setObservability(observability: ObservabilityEngine): void;
    getObservability(): ObservabilityEngine | undefined;
}
//# sourceMappingURL=emmett-engine.d.ts.map