import * as React from "react";
import * as PropTypes from "prop-types";
import { Values } from "../utils/types";
import { Props as FlexItemProps } from "./FlexItem";
import ItemAlign from "./ItemAlign";
import Justify from "./Justify";
import "../less/flex.less";
export interface Props extends FlexItemProps {
    alignContent?: "around" | "between" | "center" | "end" | "start" | "stretch";
    alignItems?: Values<typeof ItemAlign>;
    children?: React.ReactNode;
    className?: string;
    column?: boolean;
    inline?: boolean;
    justify?: Values<typeof Justify>;
    wrap?: boolean;
    [additionalProp: string]: any;
}
export declare const cssClass: {
    FLEXBOX: string;
    COLUMN: string;
    FLEXBOX_INLINE: string;
    WRAP: string;
    alignContent: (value: any) => string;
    alignItems: (value: any) => string;
    justify: (value: any) => string;
};
declare function FlexBox({ alignContent, alignItems, children, className, column, inline, justify, wrap, ...additionalProps }: Props): JSX.Element;
declare namespace FlexBox {
    var propTypes: {
        alignContent: PropTypes.Requireable<"center" | "end" | "start" | "around" | "between" | "stretch">;
        alignItems: PropTypes.Requireable<Values<{
            readonly BASELINE: "baseline";
            readonly CENTER: "center";
            readonly END: "end";
            readonly START: "start";
            readonly STRETCH: "stretch";
        }>>;
        children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        className: PropTypes.Requireable<string>;
        column: PropTypes.Requireable<boolean>;
        inline: PropTypes.Requireable<boolean>;
        justify: PropTypes.Requireable<Values<{
            readonly AROUND: "around";
            readonly BETWEEN: "between";
            readonly CENTER: "center";
            readonly END: "end";
            readonly START: "start";
        }>>;
        wrap: PropTypes.Requireable<boolean>;
        alignSelf: PropTypes.Requireable<Values<{
            readonly BASELINE: "baseline";
            readonly CENTER: "center";
            readonly END: "end";
            readonly START: "start";
            readonly STRETCH: "stretch";
        }>>;
        component: PropTypes.Requireable<any>;
        grow: PropTypes.Requireable<boolean>;
    };
    var defaultProps: {
        component: string;
    };
}
export default FlexBox;
