import type { Observer } from '../types/inputs/Observer.js'; import type { Subscribable } from '../types/inputs/Subscribable.js'; import type { AssertMapping, Mapping, MappingKey, PrependMapping } from '../types/mapping.js'; import type { StrictEmitter } from '../types/outputs/StrictEmitter.js'; import type { StrictListenable } from '../types/outputs/StrictListenable.js'; import type { MapValueIntersection } from '../types/utils.js'; /** * Object managing multiple events */ export interface MultiplexerUtils { __multiplexer_origin_map?: M; /** * Returns origin matching given key */ getOrigin>(key: K): M[K]; } /** * Object managing multiple events */ export type _Multiplexer = StrictEmitter> & StrictListenable> & MultiplexerUtils; /** * Builds a mapping from input values of each source in the given source mapping */ type InputMapping = AssertMapping]: _InputRecord; }>>; type _InputRecord = (O extends StrictEmitter ? PrependMapping : never) | (O extends Observer ? Record : never); /** * Builds a mapping from output values of each source in the given source mapping */ type OutputMapping = AssertMapping]: _OutputRecord; }>>; type _OutputRecord = (O extends StrictListenable ? PrependMapping : never) | (O extends Subscribable ? Record : never); export {};