import { default as React, RefAttributes } from 'react'; import { ClassNameType } from './core/classNames'; import { ExtractElementFromTag } from './core/coreTypes'; import { default as BoxExtends } from './core/extends/boxExtends'; import { default as Theme } from './core/theme/theme'; import { default as Variables } from './core/variables'; import { default as useVisibility } from './hooks/useVisibility'; import { BoxStyleProps, ComponentsAndVariants } from './types'; type AllProps = React.ComponentProps; type TagPropsType = Omit, 'className' | 'style' | 'ref' | 'disabled' | 'required' | 'checked' | 'id'>; interface Props extends BoxStyleProps { children?: React.ReactNode | ((props: { isHover: boolean; }) => React.ReactNode); /** html tag element */ tag?: TTag; /** props (attributes) related to html tag */ props?: TagPropsType; /** classNames. supports conditional classNames. */ className?: ClassNameType; /** CSSProperties */ style?: React.ComponentProps['style']; /** The HTML id attribute is used to specify a unique id for an HTML element. */ id?: string; } interface BoxType { (props: Props & RefAttributes>): React.ReactNode; extend: typeof BoxExtends.extend; components: typeof BoxExtends.components; Theme: typeof Theme; useTheme: typeof Theme.useTheme; getVariableValue: typeof Variables.getVariableValue; } declare const Box: BoxType; export default Box; export type BoxProps = React.ComponentProps>; export type BoxTagProps = Required>['props']; export { useVisibility };