#import #import #import #import // https://w3c.github.io/IntersectionObserver/#intersection-observer-callback callback IntersectionObserverCallback = undefined (sequence entries, IntersectionObserver observer); // https://w3c.github.io/IntersectionObserver/#intersection-observer-interface [Exposed=(Window)] interface IntersectionObserver { constructor(IntersectionObserverCallback callback, optional IntersectionObserverInit options = {}); readonly attribute (Element or Document)? root; // FIXME: readonly attribute DOMString rootMargin; // FIXME: `sequence` should be `FrozenArray` readonly attribute sequence thresholds; undefined observe(Element target); undefined unobserve(Element target); undefined disconnect(); sequence takeRecords(); }; // https://w3c.github.io/IntersectionObserver/#intersection-observer-init dictionary IntersectionObserverInit { (Element or Document)? root = null; DOMString rootMargin = "0px"; // FIXME: DOMString scrollMargin = "0px"; (double or sequence) threshold = 0; };