import { ButtonProps } from "../Button/Button.js";
import { FC, ReactNode } from "react";

//#region src/components/Accordion/Accordion.d.ts
interface AccordionProps extends Omit<ButtonProps, 'children' | 'onToggle'> {
  /** The content displayed in the accordion header */
  header: ReactNode;
  /** The collapsible content inside the accordion */
  children: ReactNode;
  /** Controls whether the accordion is open (controlled mode) */
  isOpen?: boolean;
  /** Default open state (uncontrolled mode) */
  defaultIsOpen?: boolean;
  /** Called when the accordion state changes */
  onToggle?: (isOpen: boolean) => void;
  /** Disable the accordion interaction */
  disabled?: boolean;
  /** Custom class for the content container */
  contentClassName?: string;
  /** Custom class for the header container */
  headerClassName?: string;
  /** Accessible label for screen readers */
  'aria-label'?: string;
  /** ID for the accordion content (for aria-controls) */
  contentId?: string;
}
/**
 * Accordion component that allows the user to expand and collapse content.
 * It provides a header with a chevron icon that controls the visibility of the content.
 *
 * Features:
 * - Supports both controlled and uncontrolled modes
 * - Accessible with proper ARIA attributes
 * - Keyboard navigation support
 * - Smooth animations for expand/collapse
 * - Customizable styling
 *
 * @param header - The content of the header.
 * @param children - The content to be expanded and collapsed.
 * @param isOpen - Controlled state for whether the content is expanded.
 * @param defaultIsOpen - Default open state for uncontrolled mode.
 * @param onToggle - Callback when the accordion state changes.
 * @param disabled - Whether the accordion is disabled.
 * @param contentClassName - Custom class for the content container.
 * @param headerClassName - Custom class for the header.
 * @param contentId - ID for the content (used for aria-controls).
 *
 * @example
 * // Uncontrolled mode
 * <Accordion header="Accordion Header" defaultIsOpen={true}>
 *   <p>Accordion content</p>
 * </Accordion>
 *
 * @example
 * // Controlled mode
 * <Accordion
 *   header="Controlled Accordion"
 *   isOpen={isOpen}
 *   onToggle={setIsOpen}
 * >
 *   <p>Controlled content</p>
 * </Accordion>
 */
declare const Accordion: FC<AccordionProps>;
//#endregion
export { Accordion, AccordionProps };
//# sourceMappingURL=Accordion.d.ts.map