import { ReactNode } from 'react'; export type StepperStatus = "pending" | "active" | "completed" | "error"; export interface StepperStep { /** Stable key — mirrors TabItem.key / UnifiedTabItem.key. */ id: string; /** i18n label, passed in by the consumer (never translated internally). */ label: ReactNode; /** Optional icon element shown inside the dot. */ icon?: ReactNode; /** Explicit status override. When omitted, derived from `activeStep` by index. */ status?: StepperStatus; /** Marks a non-blocking step. The hint text is supplied via `Stepper.optionalLabel` (no baked-in copy). */ optional?: boolean; } export interface StepperProps { steps: StepperStep[]; /** * Controlled active step. A `number` is a ZERO-BASED index (`steps[activeStep]`) — * 1-based stores must pass `currentStep - 1`. A `string` matches `step.id`. */ activeStep: number | string; /** When provided, completed/active steps become clickable (go-back). */ onStepChange?: (id: string, index: number) => void; /** * Hint rendered next to a step whose `optional` is true. Locale is the caller's * concern — pass your own node (e.g. `t("common.optional")`); omit for no hint. */ optionalLabel?: ReactNode; /** * Label position relative to the dot — applies to `orientation="horizontal"`. * Vertical orientation always renders labels inline (to the right of the dot). * Default "below". */ labelPlacement?: "below" | "inline"; /** Layout axis. Default "horizontal". */ orientation?: "horizontal" | "vertical"; className?: string; } /** * Controlled, stateless step-indicator (progress rail). Owns no wizard state, * navigation buttons, or step content — the consumer keeps those (both MDM's * bulk-entry store and HES's ImportWizard reducer drive `activeStep` externally). */ export declare function Stepper({ steps, activeStep, onStepChange, optionalLabel, labelPlacement, orientation, className, }: StepperProps): import("react").JSX.Element; //# sourceMappingURL=Stepper.d.ts.map