import React from "react";
import { ViewPortProps, GridRef, CellInterface, ItemSizer } from "./../Grid";
interface IProps {
    gridRef: React.MutableRefObject<GridRef>;
    getValue: (cell: CellInterface) => any;
    initialVisibleRows?: number;
    minColumnWidth?: number;
    cellSpacing?: number;
    timeout?: number;
    resizeOnScroll?: boolean;
    font?: string;
    resizeStrategy?: ResizeStrategy;
    rowCount?: number;
}
declare enum ResizeStrategy {
    "lazy" = "lazy",
    "full" = "full"
}
interface AutoResizerResults {
    columnWidth: ItemSizer;
    onViewChange: (cells: ViewPortProps) => void;
}
/**
 * Auto sizer hook
 * @param param
 *
 * TODO
 * Dynamically resize columns after user has scrolled down/view port changed ?
 */
declare const useAutoSizer: ({ gridRef, getValue, initialVisibleRows, cellSpacing, minColumnWidth, timeout, resizeStrategy, rowCount, resizeOnScroll, font, }: IProps) => AutoResizerResults;
export default useAutoSizer;
