import { default as React, ReactNode } from 'react'; import { IS_ACCORDION_ITEM } from './accordionItem.guards'; import { AccordionVariant } from './accordion'; import { ElementFocusEffect, ElementFont, ElementHoverEffect, ElementPressedEffect, ElementSelectedEffect, ElementTouchEffect, SurfaceColor } from '../../utils'; import { ElementAnimation } from '../../types'; /** * Props for {@link AccordionItem}. * * @category Accordion */ export interface AccordionItemProps { /** Unique item value used to control selection state. */ value: string; /** Item header content rendered inside the trigger button. */ label: ReactNode; /** Panel content displayed when the item is expanded. */ children: ReactNode; leading?: ReactNode; trailing?: ReactNode; icon?: ReactNode; showIcon?: boolean; variant?: AccordionVariant; font?: ElementFont; animation?: ElementAnimation; flush?: boolean; divided?: boolean; onFocus?: React.FocusEventHandler; onBlur?: React.FocusEventHandler; /** Hover visual effects. */ hoverEffects?: ElementHoverEffect[]; /** Focus visual effects. */ focusEffects?: ElementFocusEffect[]; /** Pressed visual effects. */ pressedEffects?: ElementPressedEffect[]; /** Touch and click visual effects. */ touchEffects?: ElementTouchEffect[]; /** Visual effects applied when selected. */ selectedEffects?: ElementSelectedEffect[]; color?: SurfaceColor; disabled?: boolean; } /** * Single accordion item consisting of a trigger and collapsible content. * * Integrates with shared selection behavior to determine * whether the panel is expanded and to toggle its state. * * @function * * @category Accordion */ export declare const AccordionItem: { ({ value, label, children, leading, trailing, showIcon, icon, font, variant, animation, flush, divided, onFocus, onBlur, color, disabled, hoverEffects, focusEffects, pressedEffects, touchEffects, selectedEffects, }: AccordionItemProps): import("react/jsx-runtime").JSX.Element; /** * Marks this component as an AccordionItem for runtime type guards. * * Used internally to identify Accordion elements via a shared Symbol. * Not part of the public API. * * @internal */ [IS_ACCORDION_ITEM]: boolean; };