import type { EventMap } from 'typed-emitter'; import type { EmptyFn } from '../core-types'; export declare const emptyFn: EmptyFn; export interface EventEmitter { on(event: E, listener: (p: Parameters[0], ack?: (r: ReturnType) => void) => void): this; off(event: E, listener: (p: Parameters[0], ack?: (r: ReturnType) => void) => void): this; emit(event: E, request: Parameters[0], acknowledgeCb?: (response: ReturnType) => void): boolean; emitAndAcknowledge(event: E, request: Parameters[0]): Promise>; disconnect(): void; onConnect(fn: () => void): EmptyFn; onDisconnect(fn: () => void): EmptyFn; }