import { EpPropMergeType } from 'element-plus/es/utils';
import { PlusFormProps } from 'plus-pro-components/es/components/form';
import { DefineComponent, ComponentOptionsMixin, PublicProps, ExtractPropTypes, Component, ComputedOptions, MethodOptions, PropType } from 'vue';
import { PlusStepFromRow } from './type';
import { FieldValues, PlusColumn } from 'plus-pro-components/es/types';

export interface PlusStepsFormProps {
    /**
     *
     * @version 0.1.14  变更为可选
     */
    modelValue?: number;
    /**
     * 数据
     * @version 0.1.14  变更为可选
     */
    data?: PlusStepFromRow[];
    /**
     * 提交按钮文字
     * @version 0.1.14
     * @default 提交
     */
    submitText?: string;
    /**
     * 下一步按钮文字
     * @version 0.1.14
     * @default 下一步
     */
    nextText?: string;
    /**
     * 上一步按钮文字
     * @version 0.1.14
     * @default 上一步
     */
    preText?: string;
}
export interface PlusStepsFormEmits {
    (e: 'pre', modelValue: number): void;
    /**
     * @version 0.1.23 新增参数  allValues
     */
    (e: 'next', modelValue: number, values: FieldValues, allValues: FieldValues): void;
    /**
     * @version 0.1.23
     */
    (e: 'submit', modelValue: number, values: FieldValues, allValues: FieldValues): void;
    (e: 'update:modelValue', active: number): void;
    (e: 'change', values: FieldValues, column: PlusColumn): void;
}
declare const _default: __VLS_WithTemplateSlots< DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<PlusStepsFormProps>, {
    modelValue: number;
    data: () => never[];
    submitText: undefined;
    nextText: undefined;
    preText: undefined;
}>, {}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
    pre: (modelValue: number) => void;
    next: (modelValue: number, values: FieldValues, allValues: FieldValues) => void;
    submit: (modelValue: number, values: FieldValues, allValues: FieldValues) => void;
    "update:modelValue": (active: number) => void;
    change: (values: FieldValues, column: PlusColumn) => void;
}, string, PublicProps, Readonly< ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<PlusStepsFormProps>, {
    modelValue: number;
    data: () => never[];
    submitText: undefined;
    nextText: undefined;
    preText: undefined;
}>>> & {
    onChange?: ((values: FieldValues, column: PlusColumn) => any) | undefined;
    "onUpdate:modelValue"?: ((active: number) => any) | undefined;
    onSubmit?: ((modelValue: number, values: FieldValues, allValues: FieldValues) => any) | undefined;
    onPre?: ((modelValue: number) => any) | undefined;
    onNext?: ((modelValue: number, values: FieldValues, allValues: FieldValues) => any) | undefined;
}, {
    modelValue: number;
    data: PlusStepFromRow[];
    nextText: string;
    submitText: string;
    preText: string;
}, {}>, Partial<Record<string, (_: {
    title: string;
    form?: PlusFormProps | undefined;
    description?: string | undefined;
    icon?: EpPropMergeType<(new (...args: any[]) => (string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) & {}) | (() => string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) | ((new (...args: any[]) => (string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) & {}) | (() => string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>))[], unknown, unknown> | undefined;
    status?: EpPropMergeType<StringConstructor, "" | "success" | "error" | "wait" | "finish" | "process", unknown> | undefined;
}) => any>> & {
    icon?(_: {
        icon: EpPropMergeType<(new (...args: any[]) => (string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) & {}) | (() => string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) | ((new (...args: any[]) => (string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) & {}) | (() => string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>))[], unknown, unknown> | undefined;
        title: string;
        description: string | undefined;
    }): any;
    title?(_: {
        icon: EpPropMergeType<(new (...args: any[]) => (string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) & {}) | (() => string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) | ((new (...args: any[]) => (string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) & {}) | (() => string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>))[], unknown, unknown> | undefined;
        title: string;
        description: string | undefined;
    }): any;
    description?(_: {
        icon: EpPropMergeType<(new (...args: any[]) => (string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) & {}) | (() => string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) | ((new (...args: any[]) => (string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) & {}) | (() => string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>))[], unknown, unknown> | undefined;
        title: string;
        description: string | undefined;
    }): any;
}>;
export default _default;
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
type __VLS_TypePropsToRuntimeProps<T> = {
    [K in keyof T]-?: {} extends Pick<T, K> ? {
        type: PropType<__VLS_NonUndefinedable<T[K]>>;
    } : {
        type: PropType<T[K]>;
        required: true;
    };
};
type __VLS_WithDefaults<P, D> = {
    [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
        default: D[K];
    }> : P[K];
};
type __VLS_Prettify<T> = {
    [K in keyof T]: T[K];
} & {};
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
