import { type ReactNode } from 'react'; import type { BoardColumnDef, BoardTicket } from './types'; export interface BoardColumnProps { column: BoardColumnDef; collapsed?: boolean; /** Takes the id so the board can pass one stable handler to every lane. * Absent = the lane cannot collapse and renders no collapse arrow. */ onToggleCollapse?: (columnId: string) => void; onAddTicket?: (columnId: string) => void; onArchive?: (columnId: string) => void; getTicketHref?: (ticketId: string) => string; renderAssignSlot?: (ticket: BoardTicket) => ReactNode; onApprove?: (ticketId: string, requestId?: string) => void | Promise; onReject?: (ticketId: string, requestId?: string) => void | Promise; onLoadMore?: (columnId: string) => void; loadMoreRootMargin?: string; joinLeft?: boolean; joinRight?: boolean; /** * The touch-pager variant of the lane: registers NO drag-and-drop at all (no * drop target, no auto-scroll, cards forced non-draggable — the HTML5 drag * events Pragmatic builds on never fire under touch) and words the empty * state without "drag". Everything else — header, collapse, load-more — is * the same lane. */ touchMode?: boolean; /** Merged last, so the touch pager can override the fixed lane width. */ className?: string; } /** Memoized: `Board` rebuilds only the two columns a drag touches, so the * untouched ones keep their object identity and can skip the render entirely. * Without this, every pointer move that shifts a card re-renders all lanes. */ export declare const BoardColumn: import("react").NamedExoticComponent; //# sourceMappingURL=board-column.d.ts.map