import { type ChangeEvent } from 'react';
import type { ListRange, VirtuosoHandle } from 'react-virtuoso';
import { type DataGridRow } from '../../DataGrid';
import { type CellValue } from '../../DataGrid/types';
import { type DataGridInfiniteProps } from '../types';
type UseLogicParams<TData extends Record<string, CellValue> = DataGridRow, TSortField extends keyof TData = keyof TData> = DataGridInfiniteProps<TData, TSortField>;
export declare const useLogic: <TData extends Record<string, unknown> = DataGridRow, TSortField extends keyof TData = keyof TData>({ keyId, columns, rows, variant, tree, subrows, selectedRows, maxHeight, isLoading, isDisabled, isEndReached, onEndReached, onSelectRow, isHideSelectAll, isHideHeaderIfNoData, gridViewMode: gridViewModeProp, }: UseLogicParams<TData, TSortField>) => {
    containerCssVars: import("react").CSSProperties;
    mobileSkeletonProps: {
        cellsCount: number;
        rowsCount: number;
    };
    flattenColumns: import("../../DataGrid").DataGridSingleColumn<TData>[];
    isNoData: boolean;
    isMobile: boolean;
    isDataGridDisabled: boolean | undefined;
    treeRenderConfig: {
        isInitialExpanded?: boolean | undefined;
        expandedLevel?: number | undefined;
        initialVisibleChildrenCount?: number | undefined;
    } | undefined;
    isEndReached: boolean | undefined;
    isHideHead: boolean;
    hasGroupedColumns: boolean;
    gridViewMode: "standard" | "full";
    virtuosoProps: {
        id: string;
        ref: import("react").RefObject<VirtuosoHandle | null>;
        endReached: () => void;
        rangeChanged: (range: ListRange) => void;
        totalListHeightChanged: () => void;
    };
    headProps: {
        rowsCount: number;
        uncheckedRowsCount: number;
        gridColumns: string;
        isSelectable: boolean;
        onSelectAllRows: (event: ChangeEvent<HTMLInputElement>) => void;
        isHideSelectAll: boolean | undefined;
    };
    rowProps: {
        isSelectable: boolean;
        gridColumns: string;
        onSelectRow: (row: TData) => (event: ChangeEvent<HTMLInputElement>) => void;
    };
    scrollToTopButtonProps: {
        onClick: () => void;
        ref: import("react").RefObject<HTMLButtonElement | null>;
    };
};
export {};
