import React from 'react'; import { EmotionSx } from '@raikou/emotion'; import { RaikouBreakpoint } from '../RaikouProvider'; import type { CssVarsProp, RaikouStyleProp } from './Box.types'; import { RaikouStyleProps } from './style-props'; export type Mod = Record | string; export type BoxMod = Mod | Mod[] | BoxMod[]; export interface BoxProps extends RaikouStyleProps { /** Class added to root element, if applicable */ className?: string; /** Inline style added to root component element, can subscribe to theme defined on RaikouProvider */ style?: RaikouStyleProp; /** CSS variables defined on root component element */ __vars?: CssVarsProp; /** `size` property passed down the HTML element */ __size?: string; /** Breakpoint above which the component is hidden with `display: none` */ hiddenFrom?: RaikouBreakpoint; /** Breakpoint below which the component is hidden with `display: none` */ visibleFrom?: RaikouBreakpoint; /** Determines whether component should be hidden in light color scheme with `display: none` */ lightHidden?: boolean; /** Determines whether component should be hidden in dark color scheme with `display: none` */ darkHidden?: boolean; /** Element modifiers transformed into `data-` attributes, for example, `{ 'data-size': 'xl' }`, falsy values are removed */ mod?: BoxMod; /** Emotion styles for stx, styles prop */ stx?: EmotionSx; } export type ElementProps = Omit, 'style' | PropsToOmit>; export interface BoxComponentProps extends BoxProps { /** Variant passed from parent component, sets `data-variant` */ variant?: string; /** Size passed from parent component, sets `data-size` if value is not number like */ size?: string | number; } export declare const Box: ((props: import("../factory").PolymorphicComponentProps) => React.ReactElement) & Omit, "component" | keyof BoxComponentProps> & { ref?: any; renderRoot?: (props: any) => any; }) | (BoxComponentProps & { component: React.ElementType; renderRoot?: (props: Record) => any; })>, never> & Record;