/* eslint-disable */ import type { ComponentPropsWithoutRef, ElementType, ElementRef, JSX, Ref } from 'react' import type { RecipeDefinition, RecipeSelection, RecipeVariantRecord } from './recipe'; import type { Assign, DistributiveOmit, DistributiveUnion, JsxHTMLProps, JsxStyleProps, Pretty } from './system-types'; interface Dict { [k: string]: unknown } export type ComponentProps = DistributiveOmit, 'ref'> & { ref?: Ref> } export interface StyledComponent { (props: JsxHTMLProps, Assign>): JSX.Element displayName?: string } interface RecipeFn { __type: any } interface JsxFactoryOptions { dataAttr?: boolean defaultProps?: TProps shouldForwardProp?(prop: string, variantKeys: string[]): boolean } export type JsxRecipeProps = JsxHTMLProps, P>; export type JsxElement = T extends StyledComponent ? StyledComponent>> : StyledComponent export interface JsxFactory { (component: T): StyledComponent (component: T, recipe: RecipeDefinition

, options?: JsxFactoryOptions>>): JsxElement< T, RecipeSelection

> (component: T, recipeFn: P, options?: JsxFactoryOptions>): JsxElement } export type JsxElements = { [K in keyof JSX.IntrinsicElements]: StyledComponent } export type Styled = JsxFactory & JsxElements export type HTMLStyledProps = JsxHTMLProps, JsxStyleProps> export type StyledVariantProps> = T extends StyledComponent ? Props : never