import { ColumnSize } from 'react-stately/useTableState'; import { DOMRef, Key } from '@react-types/shared'; import type { DragAndDropHooks } from '../dnd/useDragAndDrop'; import type { DraggableCollectionState } from 'react-stately/useDraggableCollectionState'; import type { DroppableCollectionState } from 'react-stately/useDroppableCollectionState'; import React, { ReactElement } from 'react'; import { SpectrumTableProps } from './TableView'; import { TableState } from 'react-stately/useTableState'; import { TableViewLayout } from './TableViewLayout'; import { TreeGridState } from 'react-stately/private/table/useTreeGridState'; export interface TableContextValue { state: TableState; dragState: DraggableCollectionState | null; dropState: DroppableCollectionState | null; dragAndDropHooks?: DragAndDropHooks['dragAndDropHooks']; isTableDraggable: boolean; isTableDroppable: boolean; layout: TableViewLayout; headerRowHovered: boolean; isInResizeMode: boolean; setIsInResizeMode: (val: boolean) => void; isEmpty: boolean; onFocusedResizer: () => void; onResizeStart?: (widths: Map) => void; onResize?: (widths: Map) => void; onResizeEnd?: (widths: Map) => void; headerMenuOpen: boolean; setHeaderMenuOpen: (val: boolean) => void; renderEmptyState?: () => ReactElement; } export declare const TableContext: React.Context | null>; export declare function useTableContext(): TableContextValue; export declare const VirtualizerContext: React.Context<{ width: number; key: Key | null; } | null>; export declare function useVirtualizerContext(): { width: number; key: Key | null; } | null; interface TableBaseProps extends SpectrumTableProps { state: TableState | TreeGridState; } interface TableRowContextValue { dragButtonProps: React.HTMLAttributes; dragButtonRef: React.RefObject; isFocusVisibleWithin: boolean; } export declare function useTableRowContext(): TableRowContextValue; declare const ForwardTableViewBase: (props: TableBaseProps & { ref?: DOMRef | undefined; }) => ReactElement>; export { ForwardTableViewBase as TableViewBase };