import type { SerializableObject } from "../helpers.js";
import { UrlHandler } from "../url-handler.js";
import { type AsyncEventBus, type EventBus, type EventMap } from "./event-bus.js";
import type { IEvent } from "./shared.js";
export * from "./async.js";
export * from './event-bus.js';
export * from './shared.js';
export * from './event-emitter.js';
export declare const eventBuses: UrlHandler<[url: URL, config: SerializableObject & {
    abort?: AbortSignal;
}, void], EventBus> & {
    process<TEvents extends EventMap<TEvents> = Record<PropertyKey, IEvent<unknown[], unknown>>>(url: URL, config: SerializableObject): Promise<EventBus<TEvents>>;
};
export declare const asyncEventBuses: UrlHandler<[url: URL, config: SerializableObject & {
    abort?: AbortSignal;
}, void], AsyncEventBus> & {
    process<TEvents extends EventMap<TEvents> = Record<PropertyKey, IEvent<unknown[], unknown>>>(url: URL, config: SerializableObject): Promise<AsyncEventBus<TEvents>>;
};
