import type { FunctionComponent, ReactNode } from 'react'; import { ButtonProps, FlexProps } from '@patternfly/react-core'; /** * extends PatternFly's ButtonProps */ export interface DeckButton extends ButtonProps { /** Automatically navigate to next/previous page or close the deck when clicked */ navigation?: 'next' | 'previous' | 'close'; } export interface DeckPage { /** Content to display on this page */ content: ReactNode; /** Array of button configurations for this page */ buttons?: DeckButton[]; } export interface DeckProps { /** Array of pages to display in the deck */ pages: DeckPage[]; /** Deck className */ className?: string; /** Custom OUIA ID */ ouiaId?: string; /** Hide the progress dots indicator */ hideProgressDots?: boolean; /** Initial page index to display (0-based) */ initialPage?: number; /** Callback when page changes */ onPageChange?: (pageIndex: number) => void; /** Callback when deck is closed/cancelled */ onClose?: () => void; /** Additional props for the Flex layout containing content, progress dots, and buttons */ contentFlexProps?: FlexProps; /** Text alignment for content (uses PatternFly utility classes). Set to false to disable. */ textAlign?: 'center' | 'left' | 'right' | false; /** Accessible label for the deck region */ ariaLabel?: string; /** Accessible role description for the deck */ ariaRoleDescription?: string; /** Function to generate accessible page info label. Receives (currentPage, totalPages) and returns a string. */ getPageLabel?: (currentPage: number, totalPages: number) => string; } export declare const Deck: FunctionComponent; export default Deck;