import { OptionColor } from "../lib/option-color.js"; import { Key, ReactNode, RefObject } from "react"; //#region src/kanban/virtual-cell.d.ts export declare const KANBAN_VIRTUAL_CELL_PAGINATION: { readonly NONE: "none"; readonly CURSOR: "cursor"; }; export type KanbanVirtualCellPagination = { type: "none"; } | { type: "cursor"; hasMore: boolean; loading: boolean; pageKey: string | number; onRequestMore: () => void; }; export type KanbanVirtualCellProps = { rows: readonly TRow[]; getRowKey: (row: TRow) => Key; renderRow: (row: TRow) => ReactNode; pagination: KanbanVirtualCellPagination; containerRef?: RefObject | undefined; active?: boolean | undefined; backgroundColor?: string | undefined; /** * Optional colour identity for the cell surface: a faint resting tint at * the same alpha as `option-color`'s own subtle background, with a * stronger accent-coloured wash and ring while `active` is also set. Omit * for the plain neutral surface; `backgroundColor` still wins outright * when both are given, since that prop is the caller's explicit override. */ accent?: OptionColor | undefined; footer?: ReactNode; /** * Where the `footer` sits. `"end"` closes the cell after its rows. * `"sticky-start"` puts it first and pins it to the top of the scroll * container the cell lives in, so the action stays reachable through a * lane hundreds of cards tall and releases where the lane ends. * * The offset comes from `KANBAN_STICKY_TOP_VAR`, which the board publishes * for its own sticky header. A cell that keeps its bounded surface is its * own scroll container, and the board's header means nothing inside it: * reset the variable to `0px` on such a cell (`[--kanban-sticky-top:0px]`) * so the action rests at the cell's own top. * * Either way the cell publishes the total reach of what is pinned above a * card as `KANBAN_CARD_STICKY_TOP_VAR` on every row it renders, so a card's * own sticky header comes to rest under the action rather than behind it. */ footerPlacement?: "end" | "sticky-start" | undefined; estimateSize?: number | undefined; overscan?: number | undefined; loadMoreThreshold?: number | undefined; className?: string | undefined; }; /** Bounded, virtualized Kanban cell with cursor-page request deduplication. */ export declare const KanbanVirtualCell: ({ rows, getRowKey, renderRow, pagination, containerRef, active, backgroundColor, accent, footer, footerPlacement, estimateSize, overscan, loadMoreThreshold, className }: KanbanVirtualCellProps) => import("react").JSX.Element; //#endregion