import type { PropType } from "vue";
import { VoidField, Form } from "@formily/core";
import { Schema, SchemaKey } from "@formily/json-schema";
export interface IFormStep {
    connect: (steps: SchemaStep[], field: VoidField) => void;
    current: number;
    allowNext: boolean;
    allowBack: boolean;
    setCurrent(key: number): void;
    submit: Form["submit"];
    next(): void;
    back(): void;
}
export interface IFormStepProps {
    formStep?: IFormStep;
}
type SchemaStep = {
    name: SchemaKey;
    props: any;
    schema: Schema;
};
export declare const FormStep: {
    new (...args: any[]): import("vue").CreateComponentPublicInstance<Readonly<import("vue").ExtractPropTypes<{
        formStep: {
            type: PropType<IFormStep>;
            default(): {
                current: number;
            };
        };
    }>>, () => any, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<import("vue").ExtractPropTypes<{
        formStep: {
            type: PropType<IFormStep>;
            default(): {
                current: number;
            };
        };
    }>>, {
        formStep: IFormStep;
    }, true, {}, {}, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<import("vue").ExtractPropTypes<{
        formStep: {
            type: PropType<IFormStep>;
            default(): {
                current: number;
            };
        };
    }>>, () => any, {}, {}, {}, {
        formStep: IFormStep;
    }>;
    __isFragment?: undefined;
    __isTeleport?: undefined;
    __isSuspense?: undefined;
} & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
    formStep: {
        type: PropType<IFormStep>;
        default(): {
            current: number;
        };
    };
}>>, () => any, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
    formStep: IFormStep;
}, {}, string, {}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & {
    StepPane: import("vue").DefineComponent<{}, () => any, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
    createFormStep: (defaultCurrent?: number) => IFormStep;
};
export default FormStep;
