// Definitions by: Junyoung Clare Jang // TypeScript Version: 3.4 import { EmotionCache } from "./@emotion-cache-types-index"; import { ArrayInterpolation, ComponentSelector, CSSInterpolation, CSSObject, FunctionInterpolation, Interpolation, Keyframes, SerializedStyles } from "./@emotion-react-node_modules-@emotion-serialize-types-index"; import { ClassAttributes, Context, Provider, FC, ReactElement, ReactNode, Ref, createElement } from 'react'; import { EmotionJSX } from "./@emotion-react-types-jsx-namespace"; export { ArrayInterpolation, ComponentSelector, CSSObject, EmotionCache, FunctionInterpolation, Interpolation, Keyframes, SerializedStyles }; export * from "./@emotion-react-types-theming"; export * from "./@emotion-react-types-helper"; // tslint:disable-next-line: no-empty-interface export interface Theme { } export const ThemeContext: Context; export const CacheProvider: Provider; export function withEmotionCache(func: (props: Props, context: EmotionCache, ref: Ref) => ReactNode): FC>; export function css(template: TemplateStringsArray, ...args: Array): SerializedStyles; export function css(...args: Array): SerializedStyles; export interface GlobalProps { styles: Interpolation; } /** * @desc * JSX generic are supported only after TS@2.9 */ export function Global(props: GlobalProps): ReactElement; export function keyframes(template: TemplateStringsArray, ...args: Array): Keyframes; export function keyframes(...args: Array): Keyframes; export interface ArrayClassNamesArg extends Array { } export type ClassNamesArg = undefined | null | string | boolean | { [className: string]: boolean | null | undefined; } | ArrayClassNamesArg; export interface ClassNamesContent { css(template: TemplateStringsArray, ...args: Array): string; css(...args: Array): string; cx(...args: Array): string; theme: Theme; } export interface ClassNamesProps { children(content: ClassNamesContent): ReactNode; } /** * @desc * JSX generic are supported only after TS@2.9 */ export function ClassNames(props: ClassNamesProps): ReactElement; export const jsx: typeof createElement; export namespace jsx { namespace JSX { interface Element extends EmotionJSX.Element { } interface ElementClass extends EmotionJSX.ElementClass { } interface ElementAttributesProperty extends EmotionJSX.ElementAttributesProperty { } interface ElementChildrenAttribute extends EmotionJSX.ElementChildrenAttribute { } type LibraryManagedAttributes = EmotionJSX.LibraryManagedAttributes; interface IntrinsicAttributes extends EmotionJSX.IntrinsicAttributes { } interface IntrinsicClassAttributes extends EmotionJSX.IntrinsicClassAttributes { } type IntrinsicElements = EmotionJSX.IntrinsicElements; } }