import { FormHTMLAttributes, ReactElement, ReactNode } from 'react';
import { IconName } from '../icon/Icon.component';
declare const DESCRIPTION_PREFIX = "describe-";
declare const LABEL_PREFIX = "label-";
type FormProps = Omit, 'noValidate' | 'formNoValidate'> & {
children: ReactNode | ReactNode[];
requireMode?: 'all' | 'partial';
leftActions?: ReactNode;
rightActions?: ReactNode;
banner?: ReactNode;
};
type PageFormProps = {
layout: {
kind: 'page';
title: string;
subTitle?: string;
icon?: IconName;
};
} & FormProps;
type TabFormProps = {
layout: {
kind: 'tab';
};
} & FormProps;
type ContentProps = {
helper: string;
error: string;
};
type FormGroupProps = {
label: string;
id: string;
content: ReactElement;
direction?: 'vertical' | 'horizontal';
labelHelpTooltip?: ReactNode;
help?: string;
error?: string;
required?: boolean;
helpErrorPosition?: 'right' | 'bottom';
disabled?: boolean;
};
declare const FormGroup: ({ direction, label, id, labelHelpTooltip, content, help, error, required, helpErrorPosition, disabled, }: FormGroupProps) => import("react/jsx-runtime").JSX.Element;
type FormSectionProps = {
children: ReactElement | ReactElement[];
title?: {
name: string;
icon?: IconName;
helpTooltip?: string;
};
forceLabelWidth?: number;
rightActions?: ReactNode;
};
declare const FormSection: ({ children, title, forceLabelWidth, rightActions, }: FormSectionProps) => import("react/jsx-runtime").JSX.Element;
declare const Form: import("react").ForwardRefExoticComponent<(PageFormProps | TabFormProps) & import("react").RefAttributes>;
declare const useFieldContext: () => {
isContextAvailable: boolean;
error?: string;
disabled?: boolean;
required?: boolean;
};
export { Form, FormSection, FormGroup, useFieldContext, DESCRIPTION_PREFIX, LABEL_PREFIX, };
//# sourceMappingURL=Form.component.d.ts.map