import type { GroupTableRowModel } from '../interfaces/groupTable.interface'; export declare function reorderRows(rows: GroupTableRowModel[], sourceIndex: number, destinationIndex: number): GroupTableRowModel[]; export declare function getGroupTableItemsToUpdate(tableRows: GroupTableRowModel[], selectedIds: string[]): import("fhir/r4").QuestionnaireResponseItem[]; /** * Get the QuestionnaireResponse index of every rendered gtable row, in rendered order. A row with no * QuestionnaireResponse counterpart gets `null`. * * Rows that are unselected or still empty are dropped by {@link getGroupTableItemsToUpdate}, so a * row's rendered index is not its index in the QuestionnaireResponse. Validation walks the * QuestionnaireResponse, so instance-scoped error keys must use these indices instead. * * Computed for the whole table in a single pass over a Set of selected ids, so callers rendering n * rows stay linear rather than re-scanning the preceding rows once per row. * * Keep the selection/emptiness test here in sync with {@link getGroupTableItemsToUpdate}. * * @author Clinton Gillespie */ export declare function getQrGroupTableRowIndexes(tableRows: GroupTableRowModel[], selectedIds: string[]): (number | null)[];