import * as React from 'react'; import type { RequiredResponsiveValue } from '../../responsive/responsive'; import type { ProminentScrollButtonProps as BaseProminentScrollButtonProps, ScrollButtonProps, SubtleScrollButtonProps as BaseSubtleScrollButtonProps } from '../../scroll/scroll_button/scroll_button'; import { useScrollButtonAriaLabel } from '../../scroll/scroll_button/scroll_button'; import type { CurrentItemIndex, ScrollableItemProps, ScrollableItemsFadeSize, ScrollableItemsGap, ScrollableItemsItemSize, ScrollableItemsPadding, ScrollableItemsProps, ScrollableItemsRole, ScrollableItemsSnapAlignType, ScrollableItemsSnapType, ScrollToOptions } from '../../scroll/scrollable_items/scrollable_items'; export type CarouselScrollButton = (props: ScrollButtonProps) => React.ReactNode; export type { ScrollButtonProps }; export { useScrollButtonAriaLabel }; export type ProminentScrollButtonProps = Omit; export declare const ProminentScrollButton: React.ComponentType; export type SubtleScrollButtonProps = Omit; export declare const SubtleScrollButton: React.ComponentType; export declare const carouselGaps: readonly string[]; export type CarouselGap = ScrollableItemsGap; export type CarouselPadding = ScrollableItemsPadding; export type FadeSize = ScrollableItemsFadeSize; export type SnapType = ScrollableItemsSnapType; export type SnapAlignType = ScrollableItemsSnapAlignType; export type CarouselRole = ScrollableItemsRole; export type CarouselItemWidth = ScrollableItemsItemSize; export type CommonScrollOptions = Pick; export type CarouselScrollToItemOptions = CommonScrollOptions & { itemAlign?: 'start' | 'center' | 'end' | 'nearest' }; export type CarouselScrollByItemOptions = CommonScrollOptions & { itemAlign?: 'start' | 'center' | 'end' }; export type CarouselScrollHandle = { getScrollState: () => CarouselScrollState | undefined scrollTo: (to: number, options?: CommonScrollOptions) => void scrollBy: (amount: number, options?: CommonScrollOptions) => void scrollToPage: (pageIndex: number, options?: CommonScrollOptions) => void scrollByPage: (numberofPages: number, options?: CommonScrollOptions) => void scrollToItem: (itemIndex: number, options?: CarouselScrollToItemOptions) => void scrollByItem: (numberofItems: number, options?: CarouselScrollByItemOptions) => void }; export type CarouselScrollState = { x?: number atStart: boolean atEnd: boolean scrollable: boolean containerWidth: number containerHeight: number scrollWidth: number scrollHeight: number currentPageIndex?: number numberOfPages?: number currentItemIndex?: CurrentItemIndex numberOfItems?: number }; export type VirtualizationProps = { itemWidths: number[] | number overscan?: number initialRender?: number }; export type CarouselProps = { role?: CarouselRole ariaLabel?: string ariaLabelledBy?: string ariaDescribedBy?: string ariaSetSize?: number disableSkipLinks?: boolean outOfViewItemBehavior?: 'inert' | 'none' children: React.ReactNode scrollButton?: CarouselScrollButton onScroll?: (scrollState: CarouselScrollState) => void onScrollStateChange?: (scrollState: CarouselScrollState) => void scrollHandleRef?: React.Ref scrollableRef?: React.Ref skipLinksScrollMarginTop?: number gap?: RequiredResponsiveValue snap?: SnapType snapAlign?: SnapAlignType virtualization?: VirtualizationProps fadeSize?: FadeSize itemWidth?: RequiredResponsiveValue } & Pick; export declare const Carousel: React.ComponentType; type CarouselItemProps = Omit & { width?: CarouselItemWidth }; export declare const CarouselItem: React.ComponentType; export declare const CarouselCenterAlignSpacer: React.ComponentType; type CarouselSkipLinksProps = { carouselName: string | undefined children: React.ReactNode scrollMarginTop: number | undefined disableSkipLinks?: boolean }; export declare const CarouselSkipLinks: React.ComponentType;