import { Source } from "@/components/player/hooks/usePlayer"; type EventMap = Record; type EventKey = string & keyof T; type EventReceiver = (params: T) => void; export interface Emitter { on>(eventName: K, fn: EventReceiver): void; off>(eventName: K, fn: EventReceiver): void; emit>(eventName: K, params: T[K]): void; } interface Listener { on>(eventName: K, fn: EventReceiver): void; } export interface DisplayInterface extends Listener { play(): void; pause(): void; load(source: Source): void; }