import { Component, ReactNode } from 'react';
import { ContentRect } from 'react-measure';
import './Grid.less';
declare type ColumnsNumber = 1 | 2 | 3 | 4 | 5 | 6 | 'auto';
declare type CalculateMaxColumns = (options: {
    width: number;
}) => number;
export interface GridProps {
    /**
     * Content of the `Grid`.
     * @since 0.0.48
     */
    children?: ReactNode;
    /**
     * @ignore
     */
    className?: string;
    /**
     * @ignore
     */
    baseClassName?: string;
    /**
     * Minimal column width
     * @since 0.0.50
     */
    minColumnWidth?: number;
    /**
     * Maximum columns number
     * @since 0.0.53
     */
    maxColumnsNumber?: number | CalculateMaxColumns;
    /**
     * Number of columns for `xs` breakpoint
     * @since 0.0.53
     */
    xs?: ColumnsNumber;
    /**
     * Number of columns for `sm` breakpoint
     * @since 0.0.48
     */
    sm?: ColumnsNumber;
    /**
     * Number of columns for `md` breakpoint
     * @since 0.0.48
     */
    md?: ColumnsNumber;
    /**
     * Number of columns for `lg` breakpoint
     * @since 0.0.48
     */
    lg?: ColumnsNumber;
    /**
     * Number of columns for `xl` breakpoint
     * @since 0.0.48
     */
    xl?: ColumnsNumber;
    /**
     * Specifying the gutters between grid items
     * @since 0.0.53
     */
    gap?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
    /**
     * Columns number change notifier
     * @since 0.0.50
     */
    onColumnsChange?: (columnsNumber: number) => void;
}
interface GridState {
    xs: ColumnsNumber | number | undefined;
}
/**
 * `Grid` component is used to layout and align content based on 12-column system.
 * @since 0.0.48
 */
declare class Grid extends Component<GridProps, GridState> {
    static defaultProps: {
        children: null;
        className: null;
        baseClassName: string;
        minColumnWidth: null;
        maxColumnsNumber: number;
        xs: null;
        sm: null;
        md: null;
        lg: null;
        xl: null;
        gap: null;
        onColumnsChange: null;
    };
    state: {
        xs: ColumnsNumber | undefined;
    };
    handleResize: ({ bounds }: ContentRect) => void;
    getGapSize(): 0 | 8 | 12 | 16 | 24 | 32;
    render(): JSX.Element;
}
export default Grid;
