/**
 * Copyright (c) Adaptavist, Inc.
 */
import { GenericProps } from '../../utilities';
import { ComponentPropsWithoutRef } from 'react';
export type IAccordionType = 'default' | 'stepper';
export interface IAccordion extends Omit<ComponentPropsWithoutRef<'div'>, 'onChange'> {
    /**
     * Prop to control the active panel key in a group of Accordions.
     *
     * Default is `an empty string`.
     */
    activeKey?: string;
    /**
     * Prop to control the behaviour of an Accordion Molecule.
     *
     * If set to true, an Accordion Molecule will only open one panel at a time
     * If set to false, an Accordion Molecule can have multiple panels open at a time.
     *
     * Default is `false`
     */
    collapse?: boolean;
    /**
     * Prop for a callback function executed when active panel is changed.
     *
     * Default is `an empty object`.
     */
    onChange?: (key?: string) => void;
    /**
     * Speficies the type of Accordion to be displayed.
     *
     * Default is `undefined`.
     */
    type?: IAccordionType;
}
export interface IAccordionPanel extends React.ComponentPropsWithoutRef<'div'>, GenericProps {
    /**
     * Specifies whether the panel is clickable.
     *
     * If set to true, the panel will not be clickable.
     * If set to false, the panel will be clickable.
     *
     * Default is `false`.
     */
    disabled?: boolean;
    /**
     * Prop to check for a header on the Accordion panel.
     *
     * Default is `an empty object`.
     */
    header?: React.ReactNode;
    /**
     * Prop for a unique key identifying the panel from its' siblings.
     *
     * Default is `an empty string`.
     */
    panelKey: string;
    /**
     * Specifies if the arrow for Accordions will be visible or not.
     *
     * If set to true, the panel will show an arrow icon.
     * If set to false, the panel will not show an arrow icon.
     */
    showArrow?: boolean;
    /**
     * Prop to denote the state of the Accordion Molecule's panel/s.
     *
     * The value provided will only be applied if the accordion type is `stepper`.
     *
     * Default is `undefined`.
     */
    status?: 'done' | 'error';
}
