import type { ReactNode, Ref, MouseEventHandler } from 'react';
import type { BaseProps } from '../../types';
import type { ProgressProps } from '../Progress';
export interface BaseFormProps extends BaseProps {
    /** Primary content area. */
    content: ReactNode;
    /** Region for Form Actions. */
    actions?: ReactNode;
    /** If there is a progress state either on load, or after submit, you must indicate as such. A custom message is supported as well. */
    progress?: boolean | ProgressProps['message'];
    /** Region for Banners above the Form. */
    banners?: ReactNode;
    /** A description of the form to be displayed above the controls. */
    description?: string;
    /** The heading of the form. */
    heading?: string;
    /** Ref forwarded to the form element. */
    ref?: Ref<HTMLFormElement>;
}
export interface Step {
    /** The id that is referenced by the Multi Step currentStepId prop. */
    id: string;
    /** The displayed name of the step. */
    name: string;
    /** A set of Action Buttons to render for the step. */
    actions?: BaseFormProps['actions'];
    /** Banners to render for the step */
    banners?: BaseFormProps['banners'];
    /** Content to render for the step. */
    content?: BaseFormProps['content'];
    /**
     * Determines the size of the step indicator. Depth 0 is larger than depth 1.
     * @default 0
     */
    depth?: 0 | 1;
    /** A description of the form to be displayed above the controls. */
    description?: BaseFormProps['description'];
    /** Callback function that is called when a step marker is clicked. */
    onMarkerClick?: MouseEventHandler;
}
export default interface MultiStepFormProps {
    /** Sets the current step. */
    currentStepId: string;
    /** Flat array of objects describing each step. */
    steps: Step[];
    /**
     * MultiStepForm step indicator.
     * @default 'horizontal'
     */
    stepIndicator?: 'horizontal' | 'vertical' | 'vertical-start' | 'none';
    /** Progress state for the form. */
    progress?: BaseFormProps['progress'];
    /** The heading of the form. */
    heading?: BaseFormProps['heading'];
    /** Ref forwarded to the form element. */
    ref?: BaseFormProps['ref'];
}
//# sourceMappingURL=MultiStepForm.types.d.ts.map