import type { ColumnDef, DataType, TableCellIndex } from "../../types.js";
interface TableState<T extends DataType = DataType> {
    dispatch?: React.Dispatch<TableAction<T>>;
    columns: ColumnDef[];
    data: T[];
    allowRowSelection: boolean;
    showRowNumbers: boolean;
    selectedRowIndexes: number[];
    lastSelectedRowIndex: number | null;
    selectedCellIndex: TableCellIndex | null;
    isCellEditMode: boolean;
}
type TableAction<T extends DataType = DataType> = {
    type: "SET_DISPATCH";
    payload: React.Dispatch<TableAction<T>>;
} | {
    type: "SET_COLUMNS";
    payload: ColumnDef[];
} | {
    type: "SET_DATA";
    payload: T[];
} | {
    type: "UPDATE_COLUMN";
    payload: {
        index: number;
        column: Partial<ColumnDef>;
    };
} | {
    type: "TOGGLE_SELECTED_ROW";
    payload: {
        index: number;
        clearOtherSelections?: boolean;
    };
} | {
    type: "TOGGLE_SELECT_ALL_ROWS";
} | {
    type: "SELECT_ROW_RANGE";
    payload: number;
} | {
    type: "SELECT_CELL";
    payload: TableCellIndex | null;
} | {
    type: "ENTER_CELL_EDIT_MODE";
    payload: TableCellIndex;
};
declare const tableReducer: <T extends DataType>(state: TableState<T>, action: TableAction<T>) => TableState<T>;
export { tableReducer };
export type { TableAction, TableState };
//# sourceMappingURL=table-reducer.d.ts.map