import { SubscriptionObserver } from '../../core/types.h' export function emitAfterTime(ms: number, value: T): (observer: SubscriptionObserver) => void export function emitAfterTime(observer: SubscriptionObserver, ms: number, value: T): void export function emitAfterTime( observerOrMs: SubscriptionObserver | number, msOrValue: number | any, value?: T ) { if (typeof observerOrMs === 'number') { return (observer: SubscriptionObserver) => { setTimeout(() => observer.next(msOrValue), observerOrMs) } } setTimeout(() => observerOrMs.next(value!), msOrValue) }