import { type ElementType, type ReactNode } from 'react'; import { type ChildrenProps, type ElementTypeProps, type StyleProps, type TransferProps } from './shared'; export type AccordionOpenStateType = string | string[] | undefined; export interface AccordionHandlingProps { open: AccordionOpenStateType; toggle: (id: string) => void; } export interface AccordionItemContextProps { id: string; } export interface BaseAccordionProps extends ChildrenProps, StyleProps, TransferProps { } export interface AccordionProps extends BaseAccordionProps, AccordionHandlingProps, ElementTypeProps { } export interface AccordionHeaderProps extends BaseAccordionProps, ElementTypeProps { slot?: ReactNode; } export interface AccordionItemProps extends BaseAccordionProps, AccordionItemContextProps, ElementTypeProps { } export interface AccordionContentProps extends BaseAccordionProps { } export interface UncontrolledAccordionProps extends BaseAccordionProps { defaultOpen?: AccordionOpenStateType; stayOpen?: boolean; }