import { RefObject } from '@mui/x-internals/types';
import type { GridColDef } from '../../../models/colDef';
import type { GridRowId } from '../../../models/gridRows';
import type { DataGridProcessedProps } from '../../../models/props/DataGridProps';
import type { GridPrivateApiCommunity } from '../../../models/api/gridApiCommunity';
import type { GridStateInitializer } from '../../utils/useGridInitializeState';
export interface GridRowSpanningState {
    spannedCells: Record<GridRowId, Record<GridColDef['field'], number>>;
    hiddenCells: Record<GridRowId, Record<GridColDef['field'], boolean>>;
    /**
     * For each hidden cell, it contains the row index corresponding to the cell that is
     * the origin of the hidden cell. i.e. the cell which is spanned.
     * Used by the virtualization to properly keep the spanned cells in view.
     */
    hiddenCellOriginMap: Record<number, Record<GridColDef['field'], number>>;
}
export type RowRange = {
    firstRowIndex: number;
    lastRowIndex: number;
};
/**
 * @requires columnsStateInitializer (method) - should be initialized before
 * @requires rowsStateInitializer (method) - should be initialized before
 * @requires filterStateInitializer (method) - should be initialized before
 */
export declare const rowSpanningStateInitializer: GridStateInitializer;
export declare const useGridRowSpanning: (apiRef: RefObject<GridPrivateApiCommunity>, props: Pick<DataGridProcessedProps, "unstable_rowSpanning" | "pagination" | "paginationMode">) => void;
