import React, { ElementType, MutableRefObject } from 'react'; import { Props } from '../../types'; declare let DEFAULT_DISCLOSURE_TAG: React.ExoticComponent<{ children?: React.ReactNode; }>; interface DisclosureRenderPropArg { open: boolean; close(focusableElement?: HTMLElement | MutableRefObject): void; } export declare function Disclosure(props: Props & { defaultOpen?: boolean; }): JSX.Element; export declare namespace Disclosure { var Button: ( = "button">(props: Props, ref: React.Ref) => React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)> | null) & { displayName: string; }; var Panel: ( = "div">(props: (Pick, Exclude, "children" | "as" | "refName" | "className" | "id">> & { as?: TTag | undefined; children?: string | number | boolean | {} | React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)> | React.ReactNodeArray | React.ReactPortal | ((bag: PanelRenderPropArg) => React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)>) | null | undefined; refName?: string | undefined; } & (import("../../types").PropsOf extends { className?: any; } ? { className?: string | ((bag: PanelRenderPropArg) => string) | undefined; } : {}) & { static?: undefined; } & { unmount?: boolean | undefined; }) | (Pick, Exclude, "children" | "as" | "refName" | "className" | "id">> & { as?: TTag | undefined; children?: string | number | boolean | {} | React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)> | React.ReactNodeArray | React.ReactPortal | ((bag: PanelRenderPropArg) => React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)>) | null | undefined; refName?: string | undefined; } & (import("../../types").PropsOf extends { className?: any; } ? { className?: string | ((bag: PanelRenderPropArg) => string) | undefined; } : {}) & { unmount?: undefined; } & { static?: boolean | undefined; }), ref: React.Ref) => JSX.Element) & { displayName: string; }; } interface ButtonRenderPropArg { open: boolean; } declare type ButtonPropsWeControl = 'id' | 'type' | 'aria-expanded' | 'aria-controls' | 'onKeyDown' | 'onClick'; interface PanelRenderPropArg { open: boolean; close: (focusableElement?: HTMLElement | MutableRefObject) => void; } export {};