type CancelableDetails = { cancel(): void; readonly isCanceled: boolean; }; type AccordionType = "single" | "multiple"; type AccordionValue = string | string[] | null; type AccordionValueChangeDetails = CancelableDetails & { value: AccordionValue; previousValue: AccordionValue; itemValue: string | null; reason: "trigger" | "programmatic"; event?: Event; }; type AccordionOptions = { type?: AccordionType; defaultValue?: AccordionValue; value?: AccordionValue; collapsible?: boolean; onValueChange?: (details: AccordionValueChangeDetails) => void; }; type AccordionSetValueOptions = { emit?: boolean; }; type AccordionInstance = { readonly root: HTMLElement; openItem(value: string): void; closeItem(value: string): void; toggleItem(value: string): void; setValue(value: AccordionValue, options?: AccordionSetValueOptions): void; getValue(): AccordionValue; refresh(): void; subscribe(event: "valueChange", callback: (details: AccordionValueChangeDetails) => void): () => void; destroy(): void; }; declare function createAccordion(root: HTMLElement, options?: AccordionOptions): AccordionInstance; export { type AccordionInstance, type AccordionOptions, type AccordionSetValueOptions, type AccordionType, type AccordionValue, type AccordionValueChangeDetails, createAccordion };