/** * createStepper - the HEADLESS core behind : per-step status * (complete / active / upcoming), the linear-vs-free clickability rule, and * navigation, as pure getters + prop-getters. No runes, framework-free, directly * unit-testable. * * ```svelte * *
    * {#each steps as step, idx} *
  1. * *
  2. * {/each} *
* ``` */ export type StepStatus = 'complete' | 'active' | 'upcoming'; export type StepperConfig = { count: () => number; /** 0-based index of the active step. */ current: () => number; onChange?: (index: number) => void; /** Only allow navigating to already-reached steps. Default true. */ linear?: () => boolean; }; export declare function createStepper(config: StepperConfig): { statusOf: (i: number) => StepStatus; clickable: (i: number) => boolean; go: (i: number) => void; next: () => void; prev: () => void; isActive: (i: number) => boolean; /** Spread onto a step's button. */ stepButtonProps: (i: number) => { 'aria-current': "step" | undefined; disabled: boolean; onclick: () => void; }; }; export type Stepper = ReturnType;