/**
* 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, ReactNode } from 'react';
import type { BoxProps, BoxTypeMap } from '../Box';
import './carousel.scss';
export type CarouselStep = {
/**
* Action to be performed on the step.
* @example
*/
action?: ReactNode;
/**
* The description of the step.
* @example description
*/
description?: ReactNode;
/**
* The illustration to be displayed in the step.
* @example
*/
illustration?: ReactElement;
/**
* The title of the step.
* @example title
*/
title: ReactNode;
};
export type CarouselProps = Omit, 'title'> & {
/**
* Specifies whether to auto play the carousel.
*/
autoPlay?: boolean;
/**
* Specifies the interval between slide transitions.
*/
autoPlayInterval?: number;
/**
* The text to be displayed in the next button.
*/
nextButtonText?: string;
/**
* The text to be displayed in the previous button.
*/
previousButtonText?: string;
/**
* The steps to be displayed in the carousel.
*/
steps: CarouselStep[];
/**
* The title of the carousel.
* @example title
*/
title?: ReactNode;
};
/**
* The Carousel component can be used to slide through content.
*
* Demos:
*
* - [Carousel(Oxygen UI)](https://wso2.github.io/oxygen-ui/react/?path=/docs/patterns-carousel)
*
* 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 Carousel component.
* @param ref - The ref to be forwarded to the Box component.
* @returns The rendered Carousel component.
*/
declare const Carousel: OverridableComponent>;
export default Carousel;