import type { PropertyValues } from 'lit'; import type IgcStepComponent from '../step.js'; type StepState = { linearDisabled: boolean; previousCompleted: boolean; visited: boolean; }; declare class StepperState { private readonly _state; private _steps; private _activeStep?; linear: boolean; /** Returns all registered step components. */ get steps(): readonly IgcStepComponent[]; /** Returns the currently active step. */ get activeStep(): IgcStepComponent | undefined; /** Returns all steps that are currently accessible (not disabled or linear-disabled). */ get accessibleSteps(): IgcStepComponent[]; /** * Sets the state of a given step component. * * If the step already has an existing state, it merges the new state with the existing one. * If the step does not have an existing state, it initializes it with default values and then applies the new state. * * After updating the state, it requests an update on the step component to reflect the changes in the UI. */ set(step: IgcStepComponent, state: Partial): void; /** Checks if a given step component has an associated state. */ has(step: IgcStepComponent): boolean; /** Retrieves the state of a given step component. */ get(step: IgcStepComponent): StepState | undefined; /** Deletes the state of a given step component. */ delete(step: IgcStepComponent): boolean; /** * Determines if a given step component is accessible based on its `disabled` state * and the `linearDisabled` state from the stepper state management. */ isAccessible(step: IgcStepComponent): boolean; /** Updates the registered steps collection. */ setSteps(steps: IgcStepComponent[]): void; /** Changes the active step, deactivating the previous one and marking the new one as visited. */ changeActiveStep(step: IgcStepComponent): void; /** Activates the first non-disabled step. */ activateFirstStep(): void; /** Returns the next or previous accessible step relative to the active step. */ getAdjacentStep(next?: boolean): IgcStepComponent | undefined; /** Synchronizes the `active` and `previousCompleted` state across all steps. */ syncState(): void; /** * Sets the visited state for all steps based on the current active step and the linear mode. */ setVisitedState(value: boolean): void; /** Computes and applies the linear-disabled state for all steps. */ setLinearState(): void; /** Handles step property changes, updating active step tracking and re-syncing state. */ onStepPropertyChanged(step: IgcStepComponent, changed: PropertyValues): void; /** Processes a change in the steps collection, resolving the active step and syncing state. */ stepsChanged(): void; /** Resets all step states and activates the first step. */ reset(): void; } /** * Creates a new instance of the StepperState class, which manages the state of steps in a stepper component. */ declare function createStepperState(): StepperState; export { createStepperState }; export type { StepperState };