import { VNode } from "../VNode";
import { VBindingsPreparer } from "../VBindingsPreparer";
import { VDirective } from "./VDirective";
import { VDirectiveParseContext } from "./VDirectiveParseContext";
import { VDOMUpdater } from "../VDOMUpdater";
/**
* Directive for observing element intersection with viewport or ancestor elements using IntersectionObserver.
* The `v-intersection` directive allows you to respond to changes in an element's visibility.
*
* Example usage:
*
Observable content
* Observable content
*
* The handler receives IntersectionObserverEntry array as the first argument and $ctx as the second:
* handleIntersection(entries, $ctx) {
* const entry = entries[0];
* if (entry.isIntersecting) {
* console.log('Element is visible!');
* }
* }
*
* Options can be provided via :options or :options.intersection attribute:
* :options="{root: null, threshold: 0.5, rootMargin: '0px'}"
* :options.intersection="{root: null, threshold: 0.5, rootMargin: '0px'}"
*
* This directive is useful for lazy-loading, infinite scrolling, animation triggers,
* and other features that depend on element visibility.
*/
export declare class VIntersectionDirective implements VDirective {
#private;
/**
* @param context The context for parsing the directive.
*/
constructor(context: VDirectiveParseContext);
/**
* @inheritdoc
*/
get name(): string;
/**
* @inheritdoc
*/
get vNode(): VNode;
/**
* @inheritdoc
*/
get needsAnchor(): boolean;
/**
* @inheritdoc
*/
get bindingsPreparer(): VBindingsPreparer | undefined;
/**
* @inheritdoc
*/
get domUpdater(): VDOMUpdater | undefined;
/**
* @inheritdoc
*/
get templatize(): boolean;
/**
* @inheritdoc
*/
get dependentIdentifiers(): string[];
/**
* @inheritdoc
*/
get onMount(): (() => void) | undefined;
/**
* @inheritdoc
*/
get onMounted(): (() => void) | undefined;
/**
* @inheritdoc
*/
get onUpdate(): (() => void) | undefined;
/**
* @inheritdoc
*/
get onUpdated(): (() => void) | undefined;
/**
* @inheritdoc
*/
get onUnmount(): (() => void) | undefined;
/**
* @inheritdoc
*/
get onUnmounted(): (() => void) | undefined;
/**
* @inheritdoc
*/
destroy(): void;
}