import { ComponentPropsWithoutRef, MouseEvent, Ref } from 'react';
import { DataTrackingId, LayoutUtilProps } from '../../types';
/**
 * Props for the Overflow component
 * @property {string} [children] - The content to be displayed in the overflow container
 * @property {number | string | "inherit"} [height] - The height of the overflow container
 * @property {boolean | object} [truncate] - Whether to truncate content with expand/collapse functionality
 */
export type OverflowProps = ComponentPropsWithoutRef<"div"> & Omit<LayoutUtilProps, "direction"> & {
    /**
     * The direction of the overflow container
     * @default column
     */
    direction?: LayoutUtilProps["flexDirection"];
    /**
     * The height of the overflow container
     * @remarks "inherit" is not supported when truncate is enabled
     */
    height?: number | string | "inherit";
    /**
     * The width of the overflow container
     */
    width?: number | string;
    /**
     * Ref to the scrollable content element (the inner element with `overflow: auto`).
     * The component's own `ref` points at the outer wrapper, which does not scroll, so
     * use this when an integration must target the actual scroller — e.g. a virtualizer's
     * `getScrollElement`, an `IntersectionObserver` sentinel, or programmatic scrolling.
     */
    contentRef?: Ref<HTMLDivElement>;
} & ({
    /**
     * Whether to truncate content with expand/collapse functionality
     * @default false
     */
    truncate?: false;
} | {
    /**
     * Direction must be column when truncate is enabled
     */
    direction: "column";
    /**
     * Truncation configuration with expand/collapse functionality
     */
    truncate: boolean | {
        /**
         * Text to display on the expand button
         * @default "Show more..."
         */
        expandText?: string;
        /**
         * Text to display on the collapse button
         * @default "Show less..."
         */
        collapseText?: string;
        /**
         * Callback fired when content is expanded
         */
        onExpand?: (e: MouseEvent<HTMLButtonElement>) => void;
        /**
         * Callback fired when content is collapsed
         */
        onCollapse?: (e: MouseEvent<HTMLButtonElement>) => void;
    };
}) & DataTrackingId;
/**
 * Overflow component for a scrollable container with edge shadow
 * indicators, and optional truncate-with-expand/collapse behavior.
 *
 * Features:
 * - Scrolls content that exceeds the configured `height`/`width`
 * - Shows shadow indicators on whichever edges have more content to scroll to
 * - Optional `truncate` mode (column direction only) with expand/collapse
 *   buttons and customizable button text
 * - `contentRef` exposes the actual scrolling element, separate from the
 *   outer wrapper `ref`, for integrations like virtualizers or IntersectionObserver
 *
 * @example
 * <Overflow height={200}>
 *   <LongContent />
 * </Overflow>
 *
 * @example
 * <Overflow direction="column" truncate={{ expandText: "Show more", collapseText: "Show less" }}>
 *   <LongContent />
 * </Overflow>
 */
export declare const Overflow: import('react').ForwardRefExoticComponent<OverflowProps & import('react').RefAttributes<HTMLDivElement>>;
