/**
 * Copyright (c) Adaptavist, Inc.
 */
import { GenericProps } from '@/src/utilities';
import { HTMLAttributes } from 'react';
declare type ContentAlignments = 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly';
export declare type GridControls = {
    /**
     * Control the number of columns in a grid
     */
    templateCols?: number | string;
    /**
     * Control the number of rows in a grid
     */
    templateRows?: number | string;
    /**
     * Control how elements are auto-placed in a grid
     */
    autoFlow?: 'row' | 'column' | 'dense' | 'row dense' | 'column dense';
    /**
     * Control the size of implicitly-created grid rows.
     */
    autoRows?: 'auto' | 'min' | 'max' | 'fr';
    /**
     * Control the size of implicitly-created grid columns.
     */
    autoCols?: 'auto' | 'min' | 'max' | 'fr';
    /**
     * Control the gutters between grid items
     */
    gap?: string;
    /**
     * Control how grid items are positioned along the container's main axis.
     */
    justifyContent?: ContentAlignments;
    /**
     * Control how grid items are positioned along their inline axis
     */
    justifyItems?: 'start' | 'end' | 'center' | 'stretch';
    /**
     * Control how rows are positioned in a grid container
     */
    alignContent?: ContentAlignments;
    /**
     * Control how grid items are positioned along their container's cross axis
     */
    alignItems?: 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch';
    /**
     * Control how content is justified and aligned at the same time
     */
    placeContent?: 'center' | 'start' | 'end' | 'space-between' | 'space-around' | 'space-evenly' | 'stretch';
    /**
     * Control how items are justified and aligned at the same time
     */
    placeItems?: 'start' | 'end' | 'center' | 'stretch';
};
export declare type GridItemControls = {
    /**
     * Control the order of grid items
     */
    order?: number | 'first' | 'last' | 'none';
    /**
     * Control the number of columns this item will cover in the grid
     */
    colSpan?: number | 'full' | 'auto';
    /**
     * Control the column number this item will start at
     */
    colStart?: number | 'auto';
    /**
     * Control the column number this item will end at
     */
    colEnd?: number | 'auto';
    /**
     * Control the row number this item will start at
     */
    rowStart?: number | 'auto';
    /**
     * Control the row number this item will end at
     */
    rowEnd?: number | 'auto';
    /**
     * Control the number of rows this item will cover in the grid
     */
    rowSpan?: number | 'auto' | 'full';
    /**
     * Control how this grid item will align along its inline axis
     */
    justifySelf?: 'auto' | 'start' | 'end' | 'center' | 'stretch';
    /**
     * Control how this grid item will align along its container's cross axis
     */
    alignSelf?: 'auto' | 'start' | 'end' | 'center' | 'stretch' | 'baseline';
    /**
     * Control how this grid item will be justified and aligned at the same time.
     */
    placeSelf?: 'auto' | 'start' | 'end' | 'center' | 'stretch';
};
export interface IGrid extends HTMLAttributes<HTMLDivElement>, GenericProps, GridControls {
    /**
     * Control the type of grid used. Default is 'grid'
     */
    display?: 'grid' | 'inline-grid';
    /**
     * Override the Grid styles for when the viewport is less than MD but more than SM
     */
    breakpointSM?: GridControls;
    /**
     * Override the Grid styles for when the viewport is less than LG but more than MD
     */
    breakpointMD?: GridControls;
    /**
     * Override the Grid styles for when the viewport is less than XL but more than LG
     */
    breakpointLG?: GridControls;
    /**
     * Override the Grid styles for when the viewport is less than XXL but more than XL
     */
    breakpointXL?: GridControls;
    /**
     * Override the Grid styles for when the viewport is more than XXL
     */
    breakpointXXL?: GridControls;
}
export interface IGridItem extends HTMLAttributes<HTMLDivElement>, GenericProps, GridItemControls {
    /**
     * Override the Grid item styles for when the viewport is less than MD but more than SM
     */
    breakpointSM?: GridItemControls;
    /**
     * Override the Grid item styles for when the viewport is less than LG but more than MD
     */
    breakpointMD?: GridItemControls;
    /**
     * Override the Grid item styles for when the viewport is less than XL but more than LG
     */
    breakpointLG?: GridItemControls;
    /**
     * Override the Grid item styles for when the viewport is less than XXL but more than XL
     */
    breakpointXL?: GridItemControls;
    /**
     * Override the Grid item styles for when the viewport is more than XXL
     */
    breakpointXXL?: GridItemControls;
}
export {};
