import 'react'; import { Interpolation } from "./@emotion-react-node_modules-@emotion-serialize-types-index"; import { Theme } from "./@emotion-react-types-index"; type WithConditionalCSSProp

= 'className' extends keyof P ? string extends P['className' & keyof P] ? { css?: Interpolation; } : {} : {}; // unpack all here to avoid infinite self-referencing when defining our own JSX namespace type ReactJSXElement = JSX.Element; type ReactJSXElementClass = JSX.ElementClass; type ReactJSXElementAttributesProperty = JSX.ElementAttributesProperty; type ReactJSXElementChildrenAttribute = JSX.ElementChildrenAttribute; type ReactJSXLibraryManagedAttributes = JSX.LibraryManagedAttributes; type ReactJSXIntrinsicAttributes = JSX.IntrinsicAttributes; type ReactJSXIntrinsicClassAttributes = JSX.IntrinsicClassAttributes; type ReactJSXIntrinsicElements = JSX.IntrinsicElements; export namespace EmotionJSX { interface Element extends ReactJSXElement { } interface ElementClass extends ReactJSXElementClass { } interface ElementAttributesProperty extends ReactJSXElementAttributesProperty { } interface ElementChildrenAttribute extends ReactJSXElementChildrenAttribute { } type LibraryManagedAttributes = WithConditionalCSSProp

& ReactJSXLibraryManagedAttributes; interface IntrinsicAttributes extends ReactJSXIntrinsicAttributes { } interface IntrinsicClassAttributes extends ReactJSXIntrinsicClassAttributes { } type IntrinsicElements = { [K in keyof ReactJSXIntrinsicElements]: ReactJSXIntrinsicElements[K] & { css?: Interpolation; }; }; }