/**
 * Copyright (c) Adaptavist, Inc.
 */
import { FocusEventHandler, HTMLAttributes, MouseEventHandler } from 'react';
import { GenericProps, ControlProps } from 'src/utilities';
import { Icons } from '@/src/atoms/icon/types';
import { IColorsKeys } from '@/src/theme';
export interface IAccordion extends HTMLAttributes<HTMLDivElement>, GenericProps, ControlProps {
    /**
     * Prop for setting if the Accordion has an Icon or not. Default is `true`.
     */
    hasIcon?: boolean;
    /**
     * Prop for setting if the Accordion has a Divider between the `accordionLabel` and the content within or not. Default is `true`.
     */
    hasDivider?: boolean;
    /**
     * Prop for setting the color of the Container in the Accordion. Default is `dim`.
     */
    containerColor?: IColorsKeys;
    /**
     * Prop for setting the color of text and the Divider in the Accordion. Default is `black`.
     */
    coreColor?: IColorsKeys;
    /**
     * Prop for setting the color of the Icons on the Accordion. Default is `black`.
     */
    iconColor?: IColorsKeys;
    /**
     * Prop for setting what Icon should be displayed when the Accordion is opened. Default is `Plus`.
     */
    openedIcon?: Icons;
    /**
     * Prop for setting what Icon should be displayed when the Accordion is closed. Default is `Minus`.
     */
    closedIcon?: Icons;
    /**
     * Prop for setting if this specific Accordion should be open when the Component renders. Default is `false`.
     */
    isOpenByDefault?: boolean;
    /**
     * Prop for setting if this specific Accordion should always be open and unable to close at all. Default is `false`.
     */
    isOpenPermanently?: boolean;
    /**
     * Prop for setting if this specific Accordion should close automatically if the user clicks outside of the Component.
     * Setting to true means a user cannot close the Accordion by clicking outside of the Component.
     * Setting to false means a user can close the Accordion by clicking outside of the Component; this also means that only ***`one`*** Accordion can be open at any one time.
     * Default is `false`.
     */
    isPersistent?: boolean;
    /**
     * Prop for setting the label on the Accordion to identify the Accordion. Default is an `empty string`.
     */
    accordionLabel: string;
    /**
     * Prop to control what happens when the Accordion Molecule is Clicked. Default is `an empty object`.
     */
    onClick?: MouseEventHandler<HTMLDivElement>;
    /**
     * Prop to control what happens when the Accordion Molecule is Focused. Default is `an empty object`.
     */
    onFocus?: FocusEventHandler<HTMLDivElement>;
}
