import { ReactNode, RefObject } from 'react';
import { DraggableCollectionState, DroppableCollectionState, TabListState } from 'react-stately';
import type { Key } from '@react-types/shared';
export interface DraggableTabListProps {
    /** Tab list state from React Stately */
    state: TabListState<object>;
    /** Ref to the tab list container */
    listRef: RefObject<HTMLDivElement | null>;
    /** Current ordered keys */
    orderedKeys: string[];
    /** Callback when tabs are reordered */
    onReorder?: (newOrder: Key[]) => void;
    /** Render function that receives drag/drop states */
    children: (dragState: DraggableCollectionState, dropState: DroppableCollectionState, collectionProps: Record<string, unknown>) => ReactNode;
}
/**
 * Component that enables drag-and-drop reordering for tabs.
 *
 * This component encapsulates all drag/drop hook calls, ensuring they're only
 * called when reordering is actually enabled. It uses the render prop pattern
 * to pass the drag/drop states to its children.
 */
export declare function DraggableTabList({ state, listRef, orderedKeys, onReorder, children, }: DraggableTabListProps): ReactNode;
