import type { ReactElement, ReactNode } from 'react';
export interface StepperStep<TId extends string = string> {
    readonly id: TId;
    readonly label: string;
    readonly description?: string;
    readonly icon?: ReactNode;
    /** When false, the "Next" button is disabled and the user cannot jump past this step. */
    readonly isValid: boolean;
    /** Optional explicit "completed" flag overriding the position-based heuristic (active step is never complete). */
    readonly isComplete?: boolean;
}
export interface StepperProps<TId extends string = string> {
    readonly steps: readonly StepperStep<TId>[];
    readonly currentStepId: TId;
    readonly onStepChange: (stepId: TId) => void;
    /** When true (default), the user can jump forward only if every previous step `isValid`. */
    readonly allowJumpForward?: boolean;
    readonly className?: string;
    readonly ariaLabel?: string;
}
export interface StepperFooterProps {
    readonly canGoBack: boolean;
    readonly isLastStep: boolean;
    readonly isCurrentStepValid: boolean;
    readonly isSubmitting?: boolean;
    readonly onBack: () => void;
    readonly onNext: () => void;
    readonly onSubmit: () => void;
    readonly onCancel: () => void;
    readonly labels: {
        readonly back: string;
        readonly next: string;
        readonly submit: string;
        readonly cancel: string;
    };
    readonly className?: string;
}
export declare function Stepper<TId extends string = string>({ steps, currentStepId, onStepChange, allowJumpForward, className, ariaLabel, }: StepperProps<TId>): ReactElement;
export declare function StepperFooter({ canGoBack, isLastStep, isCurrentStepValid, isSubmitting, onBack, onNext, onSubmit, onCancel, labels, className, }: StepperFooterProps): ReactElement;
//# sourceMappingURL=Stepper.d.ts.map