import React, { PureComponent } from 'react';
import PropTypes from 'prop-types';
import { AccordionItemInternalProps, AccordionItemType, AccordionProps, AccordionSectionItemProps, AccordionState } from './Accordion.types';
export declare class Accordion extends PureComponent<AccordionProps, AccordionState> {
    static displayName: string;
    static propTypes: {
        dataHook: PropTypes.Requireable<string>;
        multiple: PropTypes.Requireable<boolean>;
        skin: PropTypes.Requireable<string>;
        hideShadow: PropTypes.Requireable<boolean>;
        size: PropTypes.Requireable<string>;
        horizontalPadding: PropTypes.Requireable<string>;
        transitionSpeed: PropTypes.Requireable<string>;
        onAnimationEnter: PropTypes.Requireable<(...args: any[]) => any>;
        onAnimationExit: PropTypes.Requireable<(...args: any[]) => any>;
        items: PropTypes.Requireable<NonNullable<(PropTypes.InferProps<{
            render: PropTypes.Requireable<(...args: any[]) => any>;
        }> | null | undefined)[] | (PropTypes.InferProps<{
            title: PropTypes.Requireable<PropTypes.ReactNodeLike>;
            subtitle: PropTypes.Requireable<PropTypes.ReactNodeLike>;
            icon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
            children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
            expandLabel: PropTypes.Requireable<PropTypes.ReactNodeLike>;
            collapseLabel: PropTypes.Requireable<PropTypes.ReactNodeLike>;
            showLabel: PropTypes.Requireable<string>;
            buttonType: PropTypes.Requireable<string>;
            disabled: PropTypes.Requireable<boolean>;
            onToggle: PropTypes.Requireable<(...args: any[]) => any>;
            onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
            onMouseleave: PropTypes.Requireable<(...args: any[]) => any>;
            open: PropTypes.Requireable<boolean>;
            initiallyOpen: PropTypes.Requireable<boolean>;
        }> | null | undefined)[] | null | undefined>>;
    };
    _findOpenIndexes: (items?: AccordionItemType[], initial?: boolean) => number[];
    static defaultProps: {
        items: never[];
        multiple: boolean;
        skin: "standard";
        horizontalPadding: "large";
        hideShadow: boolean;
        transitionSpeed: string;
        size: string;
    };
    constructor(props: AccordionProps);
    _compareOpenItems: (currentItems?: AccordionItemType[], prevItems?: AccordionItemType[]) => boolean;
    componentDidUpdate: (prevProps: AccordionProps) => void;
    _toggle: (index: number) => () => void;
    render(): React.JSX.Element;
}
export declare const accordionItemBuilder: (item: AccordionItemType) => {
    render: (uncontrolledProps: AccordionItemInternalProps, internalProps: AccordionSectionItemProps) => React.JSX.Element;
    key?: string | number;
    open?: boolean;
    initiallyOpen?: boolean;
    disabled?: boolean;
    title?: React.ReactNode;
    subtitle?: React.ReactNode;
    icon?: React.ReactNode;
    prefix?: React.ReactNode;
    suffix?: React.ReactNode;
    children?: React.ReactNode;
    expandLabel?: React.ReactNode;
    collapseLabel?: React.ReactNode;
    toggleIconPlacement?: "start" | "end";
    className?: string;
    buttonType?: "node" | "button" | "textButton";
    showLabel?: "always" | "hover";
    onToggle?: React.MouseEventHandler<HTMLElement>;
    onMouseEnter?: React.MouseEventHandler<HTMLElement>;
    onMouseLeave?: React.MouseEventHandler<HTMLElement>;
    last?: boolean;
    hideShadow?: boolean;
    skin?: "light" | "standard" | "neutral";
    size?: "small" | "medium" | "large" | "tiny";
    onAnimationEnter?: () => void;
    onAnimationExit?: () => void;
    transitionSpeed?: "medium" | "slow" | "fast";
    horizontalPadding?: "small" | "none" | "medium" | "large" | "tiny";
};
export declare const accordionSectionItemBuilder: (item: AccordionItemType) => {
    render: (uncontrolledProps: AccordionItemInternalProps, internalProps: AccordionSectionItemProps) => React.JSX.Element;
    key?: string | number;
    open?: boolean;
    initiallyOpen?: boolean;
    disabled?: boolean;
    title?: React.ReactNode;
    subtitle?: React.ReactNode;
    icon?: React.ReactNode;
    prefix?: React.ReactNode;
    suffix?: React.ReactNode;
    children?: React.ReactNode;
    expandLabel?: React.ReactNode;
    collapseLabel?: React.ReactNode;
    toggleIconPlacement?: "start" | "end";
    className?: string;
    buttonType?: "node" | "button" | "textButton";
    showLabel?: "always" | "hover";
    onToggle?: React.MouseEventHandler<HTMLElement>;
    onMouseEnter?: React.MouseEventHandler<HTMLElement>;
    onMouseLeave?: React.MouseEventHandler<HTMLElement>;
    last?: boolean;
    hideShadow?: boolean;
    skin?: "light" | "standard" | "neutral";
    size?: "small" | "medium" | "large" | "tiny";
    onAnimationEnter?: () => void;
    onAnimationExit?: () => void;
    transitionSpeed?: "medium" | "slow" | "fast";
    horizontalPadding?: "small" | "none" | "medium" | "large" | "tiny";
};
export default Accordion;
//# sourceMappingURL=Accordion.d.ts.map