export type OnDone = () => Promise; export interface StepMetadata { component: any; title: string; stepHeader: string; onNextStep?: (onDone: OnDone) => Promise; onPreviousStep?: (onDone: OnDone) => Promise; onArrived?: () => Promise; } export interface State { currentStep: number; } export declare class WrappedStepMetadata { private stepMetadata; private index; constructor(stepMetadata: StepMetadata, index: number); get component(): any; get title(): string; get step(): number; get stepHeader(): string; onNextStep(onDone: OnDone): Promise; onPreviousStep(onDone: OnDone): Promise; onArrived(): Promise; } export declare class WrappedStepsMetadata { private wrappedStepMetadataArr; constructor(wrappedStepMetadataArr: WrappedStepMetadata[]); get length(): number; findByStep(step: number): WrappedStepMetadata | undefined; isFirstStep(step: number): boolean; isLastStep(step: number): boolean; isWithinStepRange(step: number): boolean; get data(): WrappedStepMetadata[]; } export interface UseStepMethods { state: State; stepsMetadata: WrappedStepsMetadata; nextStep: () => Promise; prevStep: () => Promise; setStep: (step: number) => Promise; getTitle: () => any; getComponent: () => any; getNextButtonTitle: () => string; getBackButtonTitle: () => string | null; reset: () => Promise; } declare function useStep(stepsMetadata: StepMetadata[]): UseStepMethods; export default useStep;