import { ForwardedRef, HTMLAttributes, ReactNode, RefObject } from 'react';
export interface AccordionSectionProps extends HTMLAttributes {
headingLevel?: number;
label: string;
body: any;
expanded?: boolean;
disabled?: boolean;
section?: boolean;
onActivate?: Function;
onButtonFocus?: Function;
onButtonBlur?: Function;
buttonRef?: RefObject;
icon?: ReactNode;
}
export declare const AccordionSection: import("react").ForwardRefExoticComponent>;
export interface AccordionProps extends HTMLAttributes {
headingLevel?: number;
heading?: string;
group?: false;
}
export declare const Accordion: import("react").ForwardRefExoticComponent>;
export declare const useAccordion: (sections: T[], ref: RefObject) => {
ref: RefObject;
refs: RefObject[];
buttonRefs: RefObject[];
activeElement: null;
sections: T[];
focusNextSection: (activeElement: RefObject) => void;
focusFirstSection: () => void;
focusPreviousSection: (activeElement: RefObject) => void;
focusLastSection: () => void;
};
export interface AccordionSectionProviderProps {
defaultExpanded?: boolean;
expanded?: boolean;
}
export declare const useAccordionSection: ({ defaultExpanded, expanded }: AccordionSectionProviderProps, ref: ForwardedRef) => {
ref: ForwardedRef;
expanded: boolean;
};
export interface AccordionProviderProps extends Pick, Pick {
sections: AccordionSectionProps[];
}
export declare const AccordionProvider: {
({ sections, icon, heading, headingLevel }: AccordionProviderProps): import("react/jsx-runtime").JSX.Element;
displayName: string;
};
//# sourceMappingURL=Accordion.d.ts.map