import { ReactNode } from 'react';
/**
 * Props for the InView component
 * @property {ReactNode} children - The content to render inside the visibility-tracked container
 * @property {(isVisible: boolean) => void} [onVisibilityChange] - Callback fired when visibility changes
 */
type InViewProps = {
    /**
     * The content to render inside the visibility-tracked container
     */
    children?: ReactNode;
    /**
     * Callback fired when the element's visibility in the viewport changes
     */
    onVisibilityChange?: (isVisible: boolean) => void;
    /**
     * The root margin for the intersection observer
     */
    rootMargin?: string;
};
/**
 * Internal component that detects when its content is visible in the viewport.
 *
 * Features:
 * - Uses Intersection Observer API for efficient visibility detection
 * - Fires callback when visibility state changes
 * - Handles browser compatibility gracefully
 * - Automatically cleans up observer on unmount
 *
 * @param props - Component props
 * @returns Wrapped children with visibility detection
 */
export declare const InView: ({ children, onVisibilityChange, rootMargin, }: InViewProps) => import("react/jsx-runtime").JSX.Element;
export {};
