import { default as React, JSX } from 'react'; import { CSSObject } from 'styled-components'; export type SemanticTagType = keyof Pick; type StateStyles = { _hover?: BasePrimitiveTextProps; _focus?: BasePrimitiveTextProps; _active?: BasePrimitiveTextProps; _disabled?: BasePrimitiveTextProps; _focusVisible?: BasePrimitiveTextProps; }; export type BasePrimitiveTextProps = { fontWeight?: CSSObject['fontWeight']; color?: CSSObject['color']; textAlign?: CSSObject['textAlign']; letterSpacing?: CSSObject['letterSpacing']; fontFamily?: CSSObject['fontFamily']; opacity?: CSSObject['opacity']; margin?: CSSObject['margin']; marginX?: CSSObject['margin']; marginY?: CSSObject['margin']; padding?: CSSObject['padding']; paddingX?: CSSObject['padding']; paddingY?: CSSObject['padding']; fontSize?: CSSObject['fontSize']; lineHeight?: CSSObject['lineHeight']; truncate?: boolean; userSelect?: CSSObject['userSelect']; name?: CSSObject['name']; htmlFor?: CSSObject['htmlFor']; textTransform?: CSSObject['textTransform']; position?: CSSObject['position']; top?: CSSObject['top']; left?: CSSObject['left']; bottom?: CSSObject['bottom']; right?: CSSObject['right']; }; export type PrimitiveTextProps = BasePrimitiveTextProps & StateStyles; export type TextProps = PrimitiveTextProps & Omit, 'color'> & { children: React.ReactNode; as?: SemanticTagType; }; /** * PrimitiveText Component * @description * A low-level text primitive that renders styled text without variant abstraction. * * @param {React.ReactNode} children - The content to render. * @param {SemanticTagType} as - Optional semantic tag to render as. * @param {PrimitiveTextProps} rest - Styling props. */ declare const PrimitiveText: React.FC; export default PrimitiveText;