export class ScrollableWindow implements EventTarget { get scrollTop() { return window.scrollY; } get clientHeight() { return document.body.clientHeight; } get scrollHeight() { return document.body.scrollHeight; } addEventListener( type: string, listener: EventListener | EventListenerObject, options?: boolean | AddEventListenerOptions, ): void { window.addEventListener(type, listener, options); } dispatchEvent(event: Event): boolean { return window.dispatchEvent(event); } removeEventListener( type: string, callback: EventListener | EventListenerObject, options?: EventListenerOptions | boolean, ): void { window.removeEventListener(type, callback, options); } getBoundingClientRect() { return { top: 0 }; } }