import { type DragEvent, type ReactElement, type ReactNode } from 'react'; import type { TFunction } from 'i18next'; export interface AnamnesisReorderGroupProps { /** Number of rows in the group — bounds keyboard moves and gives the * announcement its "of {{total}}". */ count: number; /** Move a row from `from` to `to` — both DISPLAY indices of the group. */ onReorder: (from: number, to: number) => void; t: TFunction; children: ReactNode; } /** One reorderable list. Renders its children untouched plus a visually * hidden polite live region the rows announce their moves into. Nesting is * fine — a row binds to its NEAREST group, and a drag never crosses groups * (each group tracks its own drag source). */ export declare function AnamnesisReorderGroup({ count, onReorder, t, children, }: AnamnesisReorderGroupProps): import("react/jsx-runtime").JSX.Element; export interface AnamnesisReorderRowRender { /** Spread onto the element that drags as one unit (the `
  • `, the section * header row…). `className` carries the dragging / drop-target affordances — * merge it with the row's own classes. */ rowProps: { draggable: true; onDragStart: (event: DragEvent) => void; onDragEnd: () => void; onDragOver: (event: DragEvent) => void; onDragLeave: () => void; onDrop: (event: DragEvent) => void; className: string; }; /** The grip button — mount it INSIDE the row's action group so the drag * affordance sits with the row's other controls. */ handle: ReactElement; } export interface AnamnesisReorderRowProps { /** Zero-based DISPLAY position of this row within its group. */ index: number; /** Accessible name of the row — names the handle and the announcements. */ label: string; children: (row: AnamnesisReorderRowRender) => ReactElement; } export declare function AnamnesisReorderRow({ index, label, children, }: AnamnesisReorderRowProps): ReactElement>; //# sourceMappingURL=anamnesis-reorder.d.ts.map