import { HTMLAttributes, ReactNode, Ref } from 'react'; import { DataProps, SlotClassNames, SlotStyles } from '../types/slots.types.js'; import { KanbanColumnProps, KanbanColumnSlots } from './kanbanBoard.types.js'; interface KanbanColumnInternalProps extends KanbanColumnProps { itemIds: string[]; items: Record; renderItem: (item: T, id: string) => ReactNode; dragHandle?: boolean; /** Shrink to a narrow strip. The board decides when, see `KanbanBoardProps.collapseEmptyColumns`. */ collapsed?: boolean; /** Work-in-progress limit — see `KanbanColumnDef.maxItems`. Display-only. */ maxItems?: number; /** Freezes the column — see `KanbanColumnDef.disabled`. */ disabled?: boolean; /** Returns whether a specific card can't be picked up — see `KanbanBoardProps.getItemDisabled`. */ getItemDisabled?: (item: T, id: string) => boolean; /** Names a card's drag handle — see `KanbanBoardProps.getItemLabel`. */ getItemLabel?: (item: T, id: string) => string; /** Custom content shown when the column has no cards — see `KanbanBoardProps.renderEmptyColumn`. */ emptyPlaceholder?: ReactNode; /** Custom header actions — see `KanbanBoardProps.renderColumnActions`. */ actions?: ReactNode; /** Allow the whole column to be dragged (by its header) to reorder it — see `KanbanBoardProps.reorderableColumns`. */ reorderable?: boolean; /** * Whether the card currently being dragged (if any) is actually a column. Suppresses the * cards drop-target highlight, which otherwise lights up on every column a dragged column * passes over — that highlight means "drop a card here", which doesn't apply mid-column-drag. */ activeIsColumn?: boolean; /** Bounds the column's height and makes its card list scroll — see `KanbanBoardProps.columnMaxHeight`. */ columnMaxHeight?: string; /** Whether more items exist for this column — see `KanbanColumnDef.hasMore`. */ hasMore?: boolean; /** Requests the next page for this column — see `KanbanBoardProps.onLoadMore`. */ onLoadMore?: () => void | Promise; /** Scroll distance from the bottom that triggers `onLoadMore` — see `KanbanBoardProps.loadMoreThreshold`. */ loadMoreThreshold?: number; } interface ColumnHeaderContentProps { title: string; count: number; maxItems?: number; actions?: ReactNode; /** Makes the title the column's keyboard drag handle. */ titleProps?: HTMLAttributes & DataProps & { ref?: Ref; }; classNames?: SlotClassNames; styles?: SlotStyles; } export declare function ColumnHeaderContent({ title, count, maxItems, actions, titleProps, classNames, styles: slotStyles, }: ColumnHeaderContentProps): import("react").JSX.Element; declare function KanbanColumn({ id, title, itemIds, items, renderItem, dragHandle, collapsed, maxItems, disabled, getItemDisabled, getItemLabel, emptyPlaceholder, actions, reorderable, activeIsColumn, columnMaxHeight, hasMore, onLoadMore, loadMoreThreshold, className, style, classNames, styles: slotStyles, ...rest }: KanbanColumnInternalProps): import("react").JSX.Element; export default KanbanColumn;