import { Accessibility } from '@fluentui/accessibility';
import * as PropTypes from 'prop-types';
import * as React from 'react';
import { UIComponentProps, ChildrenComponentProps } from '../../utils';
import { ComponentEventHandler, ShorthandCollection, FluentComponentStaticProps } from '../../types';
import { FormFieldProps } from './FormField';
export interface FormProps extends UIComponentProps, ChildrenComponentProps {
    /**
     * Accessibility behavior if overridden by the user.
     */
    accessibility?: Accessibility<never>;
    /** The HTML form action. */
    action?: string;
    /**
     * @deprecated
     * Shorthand array of props for the FormFields inside the Form.
     */
    fields?: ShorthandCollection<FormFieldProps>;
    /**
     * The HTML form submit handler.
     * @param event - React's original SyntheticEvent.
     * @param data - All props.
     */
    onSubmit?: ComponentEventHandler<FormProps>;
}
export declare const formClassName = "ui-form";
export declare type FormStylesProps = never;
/**
 * A Form is used to collect, oprionally validate, and submit the user input, in a structured way.
 */
export declare const Form: (<TExtendedElementType extends React.ElementType<any> = "form">(props: React.RefAttributes<HTMLFormElement> & Omit<import("@fluentui/react-bindings").PropsOfElement<TExtendedElementType>, "as" | keyof FormProps> & {
    as?: TExtendedElementType;
} & FormProps) => JSX.Element) & {
    propTypes?: React.WeakValidationMap<FormProps> & {
        as: React.Requireable<string | ((props: any, context?: any) => any) | (new (props: any, context?: any) => any)>;
    };
    contextTypes?: PropTypes.ValidationMap<any>;
    defaultProps?: Partial<FormProps & {
        as: "form";
    }>;
    displayName?: string;
    readonly __PRIVATE_PROPS?: React.RefAttributes<HTMLFormElement> & Omit<Pick<React.DetailedHTMLProps<React.FormHTMLAttributes<HTMLFormElement>, HTMLFormElement>, "key" | keyof React.FormHTMLAttributes<HTMLFormElement>> & {
        ref?: React.Ref<HTMLFormElement>;
    }, "as" | keyof FormProps> & {
        as?: "form";
    } & FormProps;
} & FluentComponentStaticProps<FormProps>;
