import React from "react"; export type GlassMultiStepFormData = Record; export type GlassMultiStepValidationMode = "onChange" | "onSubmit" | "onBlur"; export interface GlassMultiStepComponentProps { data: TData; onChange: (data: TData) => void; validationMode: GlassMultiStepValidationMode; } export interface FormStep { id: string; title: string; description?: string; icon?: React.ReactNode; component: React.ComponentType>; validation?: (data: unknown) => boolean | Promise; validationMessage?: string; optional?: boolean; data?: unknown; } export interface GlassMultiStepFormProps extends Omit, "onSubmit" | "onChange"> { /** * Form steps configuration */ steps?: FormStep[]; /** * Initial form data */ initialData?: GlassMultiStepFormData; /** * Form submission handler */ onSubmit?: (data: GlassMultiStepFormData) => void | Promise; /** * Form cancellation handler */ onCancel?: () => void; /** * Step change handler */ onStepChange?: (stepIndex: number, data: GlassMultiStepFormData) => void; /** * Form title */ title?: string; /** * Form description */ description?: string; /** * Show step progress indicator */ showProgress?: boolean; /** * Show step navigation buttons */ showNavigation?: boolean; /** * Allow skipping optional steps */ allowSkip?: boolean; /** * Custom submit button text */ submitButtonText?: string; /** * Custom cancel button text */ cancelButtonText?: string; /** * Loading state */ loading?: boolean; /** * Form validation mode */ validationMode?: GlassMultiStepValidationMode; /** * Show step summary */ showSummary?: boolean; /** * Custom className */ className?: string; } export interface FormContextType { currentStep: number; totalSteps: number; formData: GlassMultiStepFormData; errors?: Record; isValid?: boolean; updateFormData: (stepId: string, data: unknown) => void; updateData?: (stepId: string, data: unknown) => void; goToStep: (step: number) => void; nextStep: () => void; prevStep: () => void; isStepValid: (stepIndex: number) => Promise; validateStep?: (stepIndex: number) => boolean | Promise; isStepCompleted: (stepIndex: number) => boolean; validationMode: GlassMultiStepValidationMode; } export declare const useFormContext: () => FormContextType; /** * GlassMultiStepForm component * A comprehensive multi-step form with validation, progress tracking, and smooth transitions */ export declare const GlassMultiStepForm: React.FC; export interface GlassFormStepProps { children: React.ReactNode; title?: string; description?: string; className?: string; } export declare const GlassFormStep: React.FC; export default GlassMultiStepForm; //# sourceMappingURL=GlassMultiStepForm.d.ts.map