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;