import type { VoidFn } from "../ts/types.js"; export type Receiver = (value: V) => unknown; export type Emit = (eventValue: V, onError: (err: unknown) => unknown) => Promise; export type AddReceiver = (unloads: Set, cb: Receiver) => () => void; export type AddEmitter = (emitEvent: Emit) => unknown; /** * Create's a custom event emitter/receiver * @example * // Basic usage: get both onEvent and emitEvent * const [onUserEvent, emitUserEvent] = registerEmitter(); * * onUserEvent((event) => console.log(event)); * emitUserEvent("Hello World", console.error); */ export declare function registerEmitter(): [onEvent: AddReceiver, emitEvent: Emit]; /** * @example * // Define emitter during creation * const onUserEvent = registerEmitter((emitEvent) => { * emitEvent("Hello World", console.error); * }); * onUserEvent(((event) => console.log(event)) */ export declare function registerEmitter(registerEmitter: AddEmitter): AddReceiver; //# sourceMappingURL=registerEmitter.d.ts.map