import { RefObject, RefCallback } from 'react';
export interface IElementInViewOptions<T> extends IntersectionObserverInit {
    ref?: T | RefObject<T> | null;
    defaultInView?: boolean;
    disconnectOnceVisible?: boolean;
    onChange?: (entry: IntersectionObserverEntry) => void;
}
interface IElementInViewResult<T> {
    readonly inView: boolean;
    readonly entry: IntersectionObserverEntry | undefined;
    readonly assignRef: RefCallback<T>;
    readonly disconnect: () => void;
}
export declare function useElementInView<T extends HTMLElement = HTMLElement>({ ref: forwardedRef, root, rootMargin, threshold, defaultInView, disconnectOnceVisible, onChange, }?: IElementInViewOptions<T>): IElementInViewResult<T>;
export {};
