export type EmitterListener = [TValue] extends [void] ? () => void : (value: TValue) => void; type EmitterArgs = [TValue] extends [void] ? [] : [TValue]; export declare class Emitter> { #private; constructor(onError: (name: keyof TEvents, error: unknown) => void); hook(name: TName, listener: EmitterListener): () => void; has(name: TName): boolean; off(name: TName, listener: EmitterListener): void; clear(): void; emit(name: TName, ...args: EmitterArgs): void; } export {};