/// <reference types="react" />
export declare type Handler = (() => Promise<void>) | (() => void) | null;
export declare type WizardProps = {
    /** Optional header that is shown above the active step */
    header?: React.ReactNode;
    /** Optional footer that is shown below the active step */
    footer?: React.ReactNode;
    /** Optional start index @default 0 */
    startIndex?: number;
};
export declare type WizardValues = {
    /**
     * Go to the next step
     *
     * @param stepIndex Overwrite the default behaviour by providing a step index
     */
    nextStep: (stepIndex?: number) => Promise<void>;
    /**
     * Go to the previous step
     *
     * @param stepIndex Overwrite the default behaviour by providing a step index
     *  */
    previousStep: (stepIndex?: number) => void;
    /**
     * Attach a callback that will be called when calling `nextStep()`
     *
     * @param handler Can be either sync or async
     *
     */
    handleStep: (handler: Handler) => void;
    /**
     * Indicate the current state of the handler
     *
     * Will reflect the handler promise state: will be `true` if the handler promise is pending and
     * `false` when the handler is either fulfilled or rejected
     */
    isLoading: boolean;
    /** The current active step of the wizard */
    activeStep: number;
    /** Indicate if the current step is the first step (aka no previous step) */
    isFirstStep: boolean;
    /** Indicate if the current step is the last step (aka no next step) */
    isLastStep: boolean;
};
/** Console log levels */
export declare type LogLevel = 'info' | 'error' | 'warn';
