import type { HTMLAttributes, JSX, ReactNode } from 'react'; import type { Severity } from '../../constants/severity.types'; export interface AccordionItem { id?: string; header: ReactNode; subheader?: ReactNode; headerAddition?: ReactNode; headerActions?: ReactNode; headerIcon?: ReactNode; severity?: Severity; children: ReactNode; disabled?: boolean; } type Size = 'sm' | 'md' | 'lg'; type Mode = 'single' | 'multiple'; type Variant = 'filled' | 'outlined' | 'default'; type OpenIndexes = number[] | 'all'; type RenderMode = 'lazy' | 'eager'; export interface AccordionProps extends Omit, 'children'> { items: AccordionItem[]; mode?: Mode; size?: Size; variant?: Variant; renderMode?: RenderMode; /** Uncontrolled defaults */ defaultOpenIndex?: number | null; defaultOpenIndexes?: OpenIndexes; /** Controlled state */ openIndex?: number | null; openIndexes?: OpenIndexes; /** Change callbacks */ onOpenIndexChange?: (index: number | null) => void; onOpenIndexesChange?: (indexes: number[]) => void; } export declare function Accordion({ items, mode, size, variant, renderMode, defaultOpenIndex, defaultOpenIndexes, openIndex, openIndexes, onOpenIndexChange, onOpenIndexesChange, className, ...rest }: AccordionProps): JSX.Element; export {};