/**
 * Copyright (c) 2023-2024, WSO2 LLC. (https://www.wso2.com).
 *
 * WSO2 LLC. licenses this file to you under the Apache License,
 * Version 2.0 (the "License"); you may not use this file except
 * in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
import type { OverridableComponent } from '@mui/material/OverridableComponent';
import type { ElementType, ReactElement } from 'react';
import type { BoxProps, BoxTypeMap } from '../Box';
import './wizard.scss';
export type WizardProps<C extends ElementType = ElementType> = BoxProps<C> & {
    /**
     * Allow backward navigation. This will show a button allowing you to navigate backwards.
     */
    allowBackwardNavigation?: boolean;
    /**
     * Allow cancel. This will show a button allowing you to cancel the wizard.
     */
    allowCancel?: boolean;
    /**
     * Animate the slide transition.
     */
    animateOnSlide?: boolean;
    /**
     * Cancel button text.
     */
    cancelButtonText?: string;
    /**
     * Finish button text.
     */
    finishButtonText?: string;
    /**
     * Next button text.
     */
    nextButtonText?: string;
    /**
     * Callback to be called when the cancel button is clicked.
     */
    onCancelButtonClick: () => Promise<void>;
    /**
     * Callback to be called when the finish button is clicked.
     */
    onFinishButtonClick: () => Promise<void>;
    /**
     * Callback to be called when the next button is clicked.
     */
    onNextButtonClick: () => Promise<void>;
    /**
     * Callback to be called when the previous button is clicked.
     */
    onPreviousButtonClick: () => Promise<void>;
    /**
     * Previous button text.
     */
    previousButtonText?: string;
    /**
     * Steps to be rendered.
     */
    steps: ReactElement[];
    /**
     * Subtitle of the wizard.
     */
    subtitle: string;
    /**
     * Title of the wizard.
     */
    title: string;
};
/**
 * The Wizard lets you create a step-by-step wizard with a progress bar.
 *
 * Demos:
 *
 * - [Wizard (Oxygen UI)](https://wso2.github.io/oxygen-ui/react/?path=/docs/patterns-wizard)
 *
 * API:
 *
 * - inherits [Box API](https://mui.com/material-ui/api/box/)
 *
 * @remarks
 * - ✨ This is a custom component that is not available in the Material-UI library.
 * - ✔️ Props of the [Box](https://mui.com/material-ui/api/box/) component are also available.
 * - ✅ `component` prop is supported.
 * - ✅ The `ref` is forwarded to the root element.
 *
 * @template C - The type of the component.
 * @param props - The props for the Wizard component.
 * @param ref - The ref to be forwarded to the Box component.
 * @returns The rendered Wizard component.
 */
declare const Wizard: OverridableComponent<BoxTypeMap<WizardProps>>;
export default Wizard;
