import React from 'react';
import { StepProps, StepsProps } from 'antd-mobile';
import { FormInstance } from 'antd-mobile/es/components/form';
import { BizFormProps } from '../Form';
import StepForm from './StepForm';
import { SubmitterProps } from './Submitter';
import './index.less';
import { StyleWithVariable } from '../../../types';
export type BizStepsFormActionType = {
    /**
     * 全部表单 form 实例。
     */
    get forms(): FormInstance[];
    /**
     * 上一步。
     * @returns
     */
    prev: () => void;
    /**
     * 下一步。
     *
     * 提交当前表单，成功则进入下一步；如果是最后一步则提交。
     * @returns
     */
    next: () => void;
    /**
     * 全部表单重置，并回到第一步。
     * @returns
     */
    reset: () => void;
    /**
     * 获取已经提交成功的分步表单值。
     * @returns
     */
    getFormValues: () => any;
};
export type BizStepsFormItemType = {
    /**
     * @description 步骤标题。
     */
    title: React.ReactNode;
    /**
     * @description 表单内容。
     */
    children: React.ReactElement<typeof StepForm>;
    /**
     * @description 透传 Steps 组件属性。
     * @see {@link https://mobile.ant.design/zh/components/steps#steps|StepsProps}
     */
    stepsProps?: StepsProps;
    /**
     * @description 透传 Steps.Step 组件属性。
     * @see {@link https://mobile.ant.design/zh/components/steps#stepsstep|StepProps}
     */
    stepProps?: StepProps;
    /**
     * @description 透传 Submitter 组件属性。
     */
    submitterProps?: Omit<SubmitterProps, 'current' | 'total' | 'onPrev' | 'onNext' | 'onSubmit'>;
    /**
     * @description 显示底部区域。
     * @default true
     */
    showFooter?: boolean;
    /**
     * @description 自定义步骤条。
     * @param stepsDom 步骤条 `dom`。
     * @returns
     */
    stepsRender?: (stepsDom: React.ReactElement) => React.ReactNode;
    /**
     * @description 自定义表单内容。
     * @param formContentDom 表单内容 `dom`。
     * @returns
     */
    formContentRender?: (formContentDom: React.ReactElement) => React.ReactNode;
    /**
     * @description 自定义提交器。
     * @param submitterDom 提交器 `dom`。
     * @returns
     */
    submitterRender?: (submitterDom: React.ReactElement) => React.ReactNode;
};
export interface BizStepsFormProps extends Pick<BizStepsFormItemType, 'stepsProps' | 'stepProps' | 'submitterProps' | 'showFooter' | 'stepsRender' | 'formContentRender' | 'submitterRender'> {
    /**
     * @description 默认步骤数。
     * @default 0
     */
    defaultCurrent?: number;
    /**
     * @description 步骤数。设置后变为受控模式。
     */
    current?: number;
    /**
     * @description 步骤数改变时触发。
     * @param current 步骤数。
     * @returns
     */
    onCurrentChange?: (current: number) => void;
    /**
     * @description 切换分步表单是否滚动到内容顶部。
     * @default true
     */
    changedStepScrollToTop?: boolean;
    /**
     * @description 分步表单项配置。
     */
    items: BizStepsFormItemType[];
    /**
     * @description 常用操作（上一步/下一步/重置/获取已提交表单值/全部表单实例对象）。
     */
    actionRef?: React.MutableRefObject<BizStepsFormActionType | undefined>;
    /**
     * @description 透传给所有 `StepsForm.StepForm` 子组件属性。
     */
    formProps?: BizFormProps;
    /**
     * @description 返回上一步时触发。
     * @returns
     */
    onPrev?: () => void;
    /**
     * @description 当前步骤的表单验证成功后，跳转下一步时触发。
     * @returns
     */
    onNext?: () => void;
    /**
     * @description 最后一步提交成功后触发。
     * @param values 全部步骤的表单值。
     * @returns
     */
    onFinish?: (values: any) => void;
    /**
     * @description 类名。
     */
    className?: string;
    /**
     * @description 样式。
     */
    style?: StyleWithVariable<'--color-primary' | '--color-primary-light' | '--steps-size' | '--submitter-prev-button-width'>;
    /**
     * @description 配置内置模块样式。
     */
    styles?: {
        content?: React.CSSProperties;
        contentMain?: React.CSSProperties;
        steps?: StyleWithVariable<'--color-primary' | '--color-primary-light' | '--size'>;
        step?: React.CSSProperties;
        footer?: React.CSSProperties;
        submitter?: StyleWithVariable<'--color-primary' | '--prev-width'>;
    };
}
declare const BizStepsForm: React.FC<BizStepsFormProps> & {
    StepForm: typeof StepForm;
};
export default BizStepsForm;
