import * as react_jsx_runtime from 'react/jsx-runtime';
import React__default from 'react';
import { z } from 'zod';
import { UseFormReturn } from 'react-hook-form';
import { a as FieldConfig } from '../../shared/stack.fdi94T4S.js';
import { Z as ZodObjectOrWrapped } from '../../shared/stack.CZMWR72v.js';

interface StepperComponentProps {
    steps: Array<{
        id: string;
        label: string;
    }>;
    currentStepIndex: number;
    currentStepId: string;
    onStepClick?: (stepId: string) => void;
    isFirst: boolean;
    isLast: boolean;
}
interface SteppedAutoFormProps<SchemaType extends ZodObjectOrWrapped> {
    formSchema: SchemaType;
    values?: Partial<z.infer<SchemaType>>;
    onValuesChange?: (values: Partial<z.infer<SchemaType>>, form?: UseFormReturn<z.infer<SchemaType>>) => void;
    onSubmit?: (values: z.infer<SchemaType>) => void;
    fieldConfig?: FieldConfig<z.infer<SchemaType>>;
    children?: React__default.ReactNode;
    className?: string;
    nextButtonText?: string;
    backButtonText?: string;
    submitButtonText?: string;
    StepperComponent?: React__default.ComponentType<StepperComponentProps>;
    /** Whether the form is currently submitting. Disables submit/next buttons to prevent duplicate submissions. */
    isSubmitting?: boolean;
}
declare function SteppedAutoForm<SchemaType extends ZodObjectOrWrapped>({ formSchema, values: initialValues, onValuesChange, onSubmit, fieldConfig, children, className, nextButtonText, backButtonText, submitButtonText, StepperComponent, isSubmitting, }: SteppedAutoFormProps<SchemaType>): react_jsx_runtime.JSX.Element | null;

export { SteppedAutoForm };
export type { SteppedAutoFormProps, StepperComponentProps };
