import React from 'react';
import { Spacing } from '../../layout/types.js';
export interface FormLayoutProps {
    children?: React.ReactNode | React.ReactNode[];
    /** Style of divider, if 'none' is selected there will be no spacing between elements. */
    dividers?: 'none' | 'lines' | 'space';
    /** Optionally force horizontal FormLayout */
    horizontal?: boolean;
    /** Block: Label on top of input, Floating: label will not create a new line, will look like a tab title, FloatingOnValue: Same as floating, but it will only appear when a value is present */
    labelBehavior?: 'block' | 'floating' | 'floating-on-value';
    /** Will display a loading overlay if true. */
    loading?: boolean;
    loadingMessage?: React.ReactNode;
    /** Heading of the form. */
    heading?: React.ReactNode;
    /** If container is relative, if undefined it will only be set to relative while it's loading. */
    relative?: boolean;
    /** Amount of spacing between elements. */
    space?: Spacing;
    /** Will be displayed below heading. */
    subTitle?: React.ReactNode;
}
declare const FormLayout: {
    ({ children, dividers, heading, horizontal, labelBehavior, loading, loadingMessage, relative, space, subTitle, }: FormLayoutProps): React.ReactElement;
    Controls: ({ cancelLabel, disabled, extraEnd, extraStart, isHorizontal, isSaving, submitting, onCancel, onDelete, onSave, onSubmit, submitLabel, }: import("./components/FormControls.js").FormControlsProps) => React.ReactElement;
    ElementLayoutWrapper: ({ children, }: import("./components/FormElementLayoutWrapper.js").FormElementLayoutWrapperProps) => React.JSX.Element | null;
    ControlWrapper: ({ children, error, disabled, hasValue, hint, inputName, label, labelBehavior, maxWidth, minWidth, showErrorMessage, subText, }: import("./components/FormControlWrapper").FormControlWrapperProps) => React.ReactElement;
    Divider: ({ className, space, withBorder, }: import("./components/FormDivider.js").FormDividerProps) => React.ReactElement;
    Section: ({ children, dividers, heading, horizontal, space, subTitle, }: import("./components/FormSection.js").FormSectionProps) => React.ReactElement;
};
export { FormLayout };
