import { ComponentInterface, EventEmitter } from '../../stencil-public-runtime';
/**
 * A thin, declarative interface to the [IntersectionObserver API](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver).
 *
 * @version 6.0.0
 * @status stable
 *
 * @slot - Main slot for any content.
 */
export declare class IntersectionObserve implements ComponentInterface {
    private io;
    private _root;
    private _threshold;
    defaultSlot: HTMLSlotElement;
    get observerOptions(): IntersectionObserverInit;
    get elements(): Element[] | undefined;
    host: HTMLNanoIntersectionObserveElement;
    /** The element that is used as the viewport for checking visibility of the target. Must be an ancestor of the target.
     * Defaults to an automatic check for ancestors that `overflow: auto` or otherwise the `Document`. */
    root: globalThis.Element | string;
    handleRootChange(): void;
    /**
     * Margin around the root. Can be similar to CSS margins property, e.g. "10px 20px 30px 40px" (top, right, bottom, left).
     * The values can be percentages. This set of values serves to grow or shrink each side of the root element's
     * bounding box before computing intersections. Defaults to zeros. */
    rootMargin?: string;
    /**
     * Indicate at what percentage of the target's visibility the observer's callback should be executed.
     * If you only want to detect when visibility passes the 50% mark, you can use a value of '0.5'.
     * If you want the callback to run every time visibility passes another '25%',
     * you would specify a string of values (separated by ',') array '0, 0.25, 0.5, 0.75, 1'.
     * A value of '1.0' means that the threshold isn't considered passed until every pixel is visible.
     */
    threshold?: string;
    handleThresholdChange(): void;
    /** A resize break point is switched on or off */
    nanoIntersectionChange: EventEmitter<IntersectionObserverEntry>;
    /** A resize break point is switched on or off */
    nanoIntersecting: EventEmitter<IntersectionObserverEntry>;
    /** A resize break point is switched on or off */
    nanoNotIntersecting: EventEmitter<IntersectionObserverEntry>;
    private ioCallback;
    private handleSlotChange;
    addIO(): void;
    private removeIO;
    connectedCallback(): void;
    disconnectedCallback(): void;
    render(): any;
}
