import React, { type ElementType, type MutableRefObject, type Ref } from 'react'; import type { Props } from '../../types.js'; import { type HasDisplayName, type PropsForFeatures, type RefProp } from '../../utils/render.js'; declare let DEFAULT_DISCLOSURE_TAG: React.ExoticComponent<{ children?: React.ReactNode; }>; type DisclosureRenderPropArg = { open: boolean; close: (focusableElement?: HTMLElement | MutableRefObject) => void; }; type DisclosurePropsWeControl = never; export type DisclosureProps = Props; declare function DisclosureFn(props: DisclosureProps, ref: Ref): React.JSX.Element; declare let DEFAULT_BUTTON_TAG: "button"; type ButtonRenderPropArg = { open: boolean; hover: boolean; active: boolean; disabled: boolean; focus: boolean; autofocus: boolean; }; type ButtonPropsWeControl = 'aria-controls' | 'aria-expanded'; export type DisclosureButtonProps = Props; declare function ButtonFn(props: DisclosureButtonProps, ref: Ref): React.ReactElement> | null; declare let DEFAULT_PANEL_TAG: "div"; type PanelRenderPropArg = { open: boolean; close: (focusableElement?: HTMLElement | MutableRefObject) => void; }; type DisclosurePanelPropsWeControl = never; declare let PanelRenderFeatures: number; export type DisclosurePanelProps = Props>; declare function PanelFn(props: DisclosurePanelProps, ref: Ref): React.JSX.Element; export interface _internal_ComponentDisclosure extends HasDisplayName { (props: DisclosureProps & RefProp): React.JSX.Element; } export interface _internal_ComponentDisclosureButton extends HasDisplayName { (props: DisclosureButtonProps & RefProp): React.JSX.Element; } export interface _internal_ComponentDisclosurePanel extends HasDisplayName { (props: DisclosurePanelProps & RefProp): React.JSX.Element; } export declare let DisclosureButton: _internal_ComponentDisclosureButton; export declare let DisclosurePanel: _internal_ComponentDisclosurePanel; export declare let Disclosure: _internal_ComponentDisclosure & { /** @deprecated use `` instead of `` */ Button: _internal_ComponentDisclosureButton; /** @deprecated use `` instead of `` */ Panel: _internal_ComponentDisclosurePanel; }; export {};