export type EntryHandler = (entry: IntersectionObserverEntry) => void; export type Unobserve = () => void; export type Observe = (element: HTMLElement, entryHandler: EntryHandler) => Unobserve; export declare class ViewportTracker { /** * @private */ private elementHandlerMap; /** * @private */ private observer; /** * @private */ private queueSet; /** * Method to set scrollable viewport as root for the IntersectionObserver, returns * cleanup function to be invoked upon disposing of the DOM element to prevent memory leaks * * @param viewportElement * @param options * @returns Unobserve */ setViewport: (viewportElement: HTMLElement, options?: Pick) => () => void; /** * Method to set element to observe and handler to be triggered whenever IntersectionObserver * detects a possible change in element's visibility within specified viewport, returns * cleanup function to be invoked upon disposing of the DOM element to prevent memory leaks * * @param element * @param handler * @returns Unobserve */ observe: Observe; }