import * as React from 'react';
import { ReactNode } from 'react';
import { BoxProps } from '../Flex';
type FormColumn = {
    name: string;
    component?: React.ComponentType<any>;
    size?: string | number;
    className?: string;
    style?: React.CSSProperties;
};
type TypeFormLayout = {
    childrenToColumns?: boolean;
    defaultComponent?: React.ComponentType<any>;
    columns?: (string | number | FormColumn)[];
    placeholder?: ReactNode;
    sizes?: (string | number)[];
    style?: React.CSSProperties;
    gridRowGap?: string | number;
    gridColumnGap?: string | number;
};
export type AdaptableFormConfig = TypeFormLayout;
export type FormLayoutColumn = FormColumn;
interface FormLayoutProps extends Omit<BoxProps, keyof TypeFormLayout>, TypeFormLayout {
    children?: React.ReactNode;
    className?: string;
    style?: React.CSSProperties;
    onKeyDown?: (event: React.KeyboardEvent<HTMLDivElement>) => void;
}
declare const FormLayout: (props: FormLayoutProps) => React.JSX.Element;
interface FormRowProps {
    [k: string]: React.ReactElement[] | React.ReactElement | ReactNode;
}
export declare const FormRow: (props: FormRowProps) => React.JSX.Element;
export default FormLayout;
