import { type ChangeEvent } from 'react';
import type { CellValue, DataGridProps, DataGridRow } from '../types';
type UseLogicParams<TData extends Record<string, CellValue> = DataGridRow, TSortField extends keyof TData = keyof TData> = DataGridProps<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, isLoading, isDisabled, onSelectRow, isError, onRetry, errorMsg, isHideSelectAll, isHideHeaderIfNoData, sorting, className, onSort, maxHeight, gridViewMode: gridViewModeProp, }: UseLogicParams<TData, TSortField>) => {
    dataGridClassName: string | undefined;
    containerCssVars: import("react").CSSProperties;
    isDataGridDisabled: boolean | undefined;
    treeRenderConfig: {
        isInitialExpanded?: boolean | undefined;
        expandedLevel?: number | undefined;
        initialVisibleChildrenCount?: number | undefined;
    } | undefined;
    renderRows: TData[];
    isAllowHorizontalScroll: boolean;
    isHideHead: boolean;
    hasPinnedColumns: boolean;
    contentStateProps: {
        isLoading: boolean | undefined;
        isError: boolean | undefined;
        loadingTitle: string;
        errorState: {
            imgAlt: string;
            errorList: string[];
            imgSrc: string;
            onRetry: () => void;
        };
        isSmoothLoading: boolean;
        loadingPlaceholderClassname: string;
    };
    rowHoverProps: {
        registerRowElement: (rowId: string, el: HTMLElement) => void;
        unregisterRowElement: (rowId: string, el: HTMLElement) => void;
        onRowEnter: (rowId: string) => void;
        onRowLeave: (rowId: string, e: PointerEvent) => void;
    };
    isMobile: boolean;
    containerRef: import("react").RefObject<HTMLDivElement | null>;
    gridColumns: string;
    isNoData: boolean;
    gridViewMode: "standard" | "full";
    headColumns: import("../types").DataGridColumns<TData>[];
    isLoading: boolean | undefined;
    mobileSkeletonProps: {
        cellsCount: number;
        rowsCount: number;
    };
    hasGroupedColumns: boolean;
    headProps: {
        rowsCount: number;
        uncheckedRowsCount: number;
        isSelectable: boolean;
        onSelectAllRows: (event: ChangeEvent<HTMLInputElement>) => void;
        isHideSelectAll: boolean | undefined;
        sorting: import("../types").DataGridSort<TSortField> | undefined;
        onSort: ((sorting: import("../types").DataGridSort<TSortField> | undefined) => void) | undefined;
    };
    bodyProps: {
        isSelectable: boolean;
        onSelectRow: (row: TData) => (event: ChangeEvent<HTMLInputElement>) => void;
    };
    sections: import("../PinnedSections/types").PinnedSection<TData>[];
    loaderProps: {
        isLoading: boolean | undefined;
        isVisibleDivider: boolean;
        isDisabled: boolean | undefined;
    };
};
export {};
