import { LuiElement } from '../../../internal/lui-element.js';
import { IntersectionIntersectingChangeEvent } from '../event/intersection-intersecting-change-event.js';
declare global {
    interface HTMLElementEventMap {
        'intersection:intersecting-change': IntersectionIntersectingChangeEvent;
    }
}
declare const BaseClass: import("@lookwe/utils/types").MixinReturn<typeof LuiElement, import("@lookwe/lit-mixins/element-internals").WithElementInternals>;
/**
 * An element that observes the intersection of itself with another element or the top-level document's viewport.
 */
export declare class Intersection extends BaseClass {
    #private;
    /**
     * The ID of the element to use as the intersection root.
     */
    accessor rootId: string;
    /**
     * The element to use as the intersection root. Can be an Element or null.
     */
    set root(root: IntersectionObserverInit['root']);
    get root(): IntersectionObserverInit["root"];
    /**
     * The margins (in pixels or as percentages) around the root within which to consider the target as intersecting.
     */
    accessor rootMargin: IntersectionObserverInit['rootMargin'];
    /**
     * A single number or an array of numbers between 0.0 and 1.0 representing the intersection ratio that the target must
     * have with the root before the observer will report that the target is intersecting.
     */
    accessor threshold: IntersectionObserverInit['threshold'];
    /**
     * Indicates whether the element is currently intersecting with the root.
     */
    get isIntersecting(): boolean | undefined;
    constructor();
    render(): import("lit-html").TemplateResult<1>;
}
export {};
