import React from 'react';
import './index.css';
import './variables.css';
import { BaseProps } from '../Base';
/**
 * Props for the Accordion component.
 *
 * Extends properties from the `Base` component.
 */
export interface AccordionProps extends BaseProps {
    /**
     * The type of accordion. It can be either 'single' for a single open item at a time,
     * or 'multiple' for allowing multiple items to be open at the same time.
     *
     * @default 'single'
     * @memberof AccordionProps
     */
    type?: 'single' | 'multiple';
    /**
     * The kind of accordion. It can be 'flush' for items without borders,
     * or 'contained' for items with borders.
     *
     * @default 'contained'
     * @memberof AccordionProps
     */
    kind?: 'flush' | 'contained';
    /**
     * The icon used for the accordion trigger. It can be either 'chevron' or 'cross'.
     *
     * @default 'chevron'
     * @memberof AccordionProps
     */
    icon?: 'chevron' | 'cross';
    /**
     * The side where the icon will be displayed in the accordion trigger. It can be either 'left' or 'right'.
     *
     * @default 'right'
     * @memberof AccordionProps
     */
    iconSide?: 'left' | 'right';
    /**
     * The default value of the accordion. It can be a string or an array of strings.
     * This defines which item(s) are open by default.
     *
     * @memberof AccordionProps
     */
    defaultValue?: string | string[];
    /**
     * The controlled value of the accordion. It can be a string or an array of strings.
     * This defines which item(s) are open and should be managed externally.
     *
     * @memberof AccordionProps
     */
    value?: string | string[];
    /**
     * The callback function that is called when the value changes.
     *
     * @param {string | string[]} value - The new value of the accordion.
     * @memberof AccordionProps
     */
    onChange?: (value: string | string[]) => void;
    /**
     * The items to be rendered in the accordion. Each item contains a title, content,
     * and optional additional properties.
     *
     * @memberof AccordionProps
     */
    items?: {
        title: React.ReactNode;
        content: React.ReactNode;
        value: string;
        itemProps?: Omit<AccordionItemProps, 'value'> & React.HTMLAttributes<HTMLDivElement>;
    }[];
}
/**
 * **Parity Accordion**
 *
 *  @see {@link https://beta-parity-react.vercel.app/accordion Parity Accordion}
 */
export declare const Accordion: React.ForwardRefExoticComponent<AccordionProps & React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
/**
 * Props for the AccordionItem component.
 */
export interface AccordionItemProps {
    /**
     * The unique value for the accordion item, used to identify it.
     *
     * @memberof AccordionItemProps
     */
    value: string;
    /**
     * Indicates whether the accordion item is disabled.
     *
     * @default false
     * @memberof AccordionItemProps
     */
    disabled?: boolean;
    /**
     * Clone props
     */
    currentValue?: string | string[];
    handleChange?: (value: string) => void;
    type?: 'single' | 'multiple';
}
/**
 * **Parity Accordion Item**
 *
 *  @see {@link https://beta-parity-react.vercel.app/accordion Parity Accordion}
 */
export declare const AccordionItem: React.ForwardRefExoticComponent<AccordionItemProps & React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
/**
 * Props for the AccordionItemTrigger component.
 */
export interface AccordionItemTriggerProps {
    /**
     * Clone props
     */
    isExpanded?: boolean;
    disabled?: boolean;
    handleChange?: () => void;
    icon?: 'chevron' | 'cross';
    iconSide?: 'left' | 'right';
}
/**
 * **Parity Accordion Item Trigger**
 *
 *  @see {@link https://beta-parity-react.vercel.app/accordion Parity Accordion}
 */
export declare const AccordionItemTrigger: React.ForwardRefExoticComponent<AccordionItemTriggerProps & React.HTMLAttributes<HTMLButtonElement> & React.RefAttributes<HTMLButtonElement>>;
/**
 * Props for the AccordionItemContent component.
 */
export interface AccordionItemContentProps {
    /**
     * Clone props
     */
    isExpanded?: boolean;
}
/**
 * **Parity Accordion Item Content**

 *  @see {@link https://beta-parity-react.vercel.app/accordion Parity Accordion}
 */
export declare const AccordionItemContent: React.ForwardRefExoticComponent<AccordionItemContentProps & React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
//# sourceMappingURL=index.d.ts.map