// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// TODO(szager): add link to final spec.
callback IntersectionObserverCallback = void (sequence<IntersectionObserverEntry> entries, IntersectionObserver observer);

// TODO(szager): Update the doc link when the spec has an official home.
// https://github.com/slightlyoff/IntersectionObserver
[
    CustomConstructor(IntersectionObserverCallback callback, IntersectionObserverInit options),
    Custom=VisitDOMWrapper,
    GarbageCollected,
    RuntimeEnabled=IntersectionObserver,
] interface IntersectionObserver {
    [RaisesException] void observe(Element target);
    [RaisesException] void unobserve(Element target);
    void disconnect();
    sequence<IntersectionObserverEntry> takeRecords();
    readonly attribute Element? root;
    readonly attribute DOMString rootMargin;
    readonly attribute double[] thresholds;
};
