import * as react_jsx_runtime from 'react/jsx-runtime';
import * as accordion from '@zag-js/accordion';
import { ComponentPropsWithoutRef, Ref, ComponentProps } from 'react';

type ExtentedZagInterface = Omit<accordion.Props, 'id' | 'ids' | 'orientation' | 'getRootNode' | 'onValueChange'> & Omit<ComponentPropsWithoutRef<'div'>, 'defaultChecked'>;
interface AccordionProps extends ExtentedZagInterface {
    /**
     * Change the default rendered element for the one passed as a child, merging their props and behavior.
     */
    asChild?: boolean;
    /**
     * Whether an accordion item can be closed after it has been expanded.
     */
    collapsible?: boolean;
    defaultValue?: accordion.Props['value'];
    /**
     * Whether the accordion items are disabled
     */
    disabled?: boolean;
    /**
     * Whether multiple accordion items can be expanded at the same time.
     */
    multiple?: boolean;
    /**
     * The `value` of the accordion items that are currently being expanded.
     */
    value?: string[];
    /**
     * The callback fired when the state of expanded/collapsed accordion items changes.
     */
    onValueChange?: (value: string[]) => void;
    design?: 'filled' | 'outlined';
    ref?: Ref<HTMLDivElement>;
}
declare const Accordion$1: {
    ({ asChild, children, collapsible, className, defaultValue, design, disabled, multiple, value, onValueChange, ref, ...props }: AccordionProps): react_jsx_runtime.JSX.Element;
    displayName: string;
};

interface AccordionItemProps extends ComponentPropsWithoutRef<'div'> {
    value: string;
    asChild?: boolean;
    disabled?: boolean;
    ref?: Ref<HTMLDivElement>;
}
declare const Item: {
    ({ asChild, className, children, disabled, value, ref, ...props }: AccordionItemProps): react_jsx_runtime.JSX.Element;
    displayName: string;
};

interface AccordionItemContentProps extends ComponentPropsWithoutRef<'div'> {
    asChild?: boolean;
    ref?: Ref<HTMLDivElement>;
}
declare const ItemContent: {
    ({ asChild, className, children, ref, ...props }: AccordionItemContentProps): react_jsx_runtime.JSX.Element;
    displayName: string;
};

interface AccordionItemHeaderProps extends ComponentProps<'h3'> {
    asChild?: boolean;
    ref?: Ref<HTMLHeadingElement>;
}
declare const ItemHeader: {
    ({ asChild, children, className, ref, }: AccordionItemHeaderProps): react_jsx_runtime.JSX.Element;
    displayName: string;
};

interface AccordionItemTriggerProps extends ComponentPropsWithoutRef<'button'> {
    asChild?: boolean;
    ref?: Ref<HTMLButtonElement>;
}
declare const ItemTrigger: {
    ({ asChild, children, className, ref, ...props }: AccordionItemTriggerProps): react_jsx_runtime.JSX.Element;
    displayName: string;
};

declare const Accordion: typeof Accordion$1 & {
    Item: typeof Item;
    ItemHeader: typeof ItemHeader;
    ItemTrigger: typeof ItemTrigger;
    ItemContent: typeof ItemContent;
};

export { Accordion, type AccordionItemContentProps, type AccordionItemHeaderProps, type AccordionItemTriggerProps, type AccordionProps };
