import { ComponentProps, ElementType, ForwardedRef, ReactNode } from 'react'; declare type NonHaveChildElements = 'input' | 'textarea' | 'img' | 'br' | 'hr' | 'meta' | 'link' | 'base' | 'col' | 'embed' | 'source' | 'track' | 'wbr'; declare type NoChildren = Tag extends NonHaveChildElements ? { children?: never; } : { children: ReactNode; }; declare type TagRequired = Tag extends 'div' ? { as?: Tag; } : { as: Tag; }; declare type OutsideClickProp = ComponentProps & TagRequired & NoChildren & { callback: () => void; }; declare function OutsideClick({ as, children, callback, ...props }: OutsideClickProp, ref: ForwardedRef): JSX.Element; declare const OutsideClickWithForwardRef: typeof OutsideClick; export { OutsideClickWithForwardRef as OutsideClick };