import { type Column, type TableFeatures, type RowData, type TableFeature, type Table_Internal, type Column_Internal, type CellData, type Header } from '@tanstack/react-table'; import type { ColumnOrderFeatureConstructors } from './column-order-types.js'; /** * Overwrite the order columns fn from react table so that builtin columns are placed correctly * @internal */ export declare function table_getOrderColumnsFn(table: Table_Internal): (columns: Array>) => Column_Internal[]; /** * Helper function that provides an array of all leaf-node columns, excluding builtin columns. * @internal */ export declare function table_getLeafColumnsWithoutBuiltin(table: Table_Internal): Column[]; /** * Helper function to update the currently dragged header in the state. * @internal */ export declare function table_setDraggedHeaderColumn(table: Table_Internal, column: Column_Internal): void; /** * Helper function to create the restrict drag and drop modifier based on the * current table state. * @internal */ export declare function header_getColumnDragAndDropMode(header: Header): 'none' | 'only' | 'enabled'; /** * Helper function that determines whether drag and drop is disabled on the header (if a child column is dragged). * @internal */ export declare function header_getIsDragAndDropDisabled(header: Header): boolean; /** * Helper function to update the column order state with a new column order object or a functional update. * @internal */ export declare function column_getCanMoveColumnLeft(column: Column_Internal): boolean; /** * Helper function to update the column order state with a new column order object or a functional update. * @internal */ export declare function column_getCanMoveColumnRight(column: Column_Internal): boolean; /** * Moves the current column one position to the left and updates the table state. * * Depending on whether the column is a nested column or a standalone column, * whether its neighboring columns are pinned, hidden, or nested, * we need to consider different scenarios to calculate the new column order correctly. * * CASE1: Column itself is a nested child column. * - Constraint1: Can only move within the parent group. * - Constraint2: Skip pinned siblings. * - Constraint3: Skip hidden siblings. * * CASE2: Column is a standalone column or a parent column. * - Constraint1: Skip entire nested columns as a whole. * - Constraint2: Skip pinned columns. * - Constraint3: Skip hidden columns. * @internal */ export declare function column_moveColumnLeft(column: Column_Internal): void; /** * Moves the current column one position to the right and updates the table state. * * Depending on whether the column is a nested column or a standalone column, * whether its neighboring columns are pinned, hidden, or nested, * we need to consider different scenarios to calculate the new column order correctly. * * CASE1: Column itself is a nested child column. * - Constraint1: Can only move within the parent group. * - Constraint2: Skip pinned siblings. * - Constraint3: Skip hidden siblings. * * CASE2: Column is a standalone column or a parent column. * - Constraint1: Skip entire nested columns as a whole. * - Constraint2: Skip pinned columns. * - Constraint3: Skip hidden columns. * @internal */ export declare function column_moveColumnRight(column: Column_Internal): void; /** * Constructs the column order feature for the table, * including API implementations and prototype assignments. * @internal */ export declare function constructColumnOrderFeature(): TableFeature>; /** * Additional feature implementation for column order. * @internal */ export declare const DataTableColumnOrderFeature: TableFeature>;