UNPKG

3.12 kBTypeScriptView Raw
1// Definitions by: Junyoung Clare Jang <https://github.com/Ailrun>
2// TypeScript Version: 3.4
3import { EmotionCache } from "./@emotion-cache-types-index";
4import { ArrayInterpolation, ComponentSelector, CSSInterpolation, CSSObject, FunctionInterpolation, Interpolation, Keyframes, SerializedStyles } from "./@emotion-react-node_modules-@emotion-serialize-types-index";
5import { ClassAttributes, Context, Provider, FC, ReactElement, ReactNode, Ref, createElement } from 'react';
6import { EmotionJSX } from "./@emotion-react-types-jsx-namespace";
7export { ArrayInterpolation, ComponentSelector, CSSObject, EmotionCache, FunctionInterpolation, Interpolation, Keyframes, SerializedStyles };
8export * from "./@emotion-react-types-theming";
9export * from "./@emotion-react-types-helper";
10// tslint:disable-next-line: no-empty-interface
11export interface Theme {
12}
13export const ThemeContext: Context<object>;
14export const CacheProvider: Provider<EmotionCache>;
15export function withEmotionCache<Props, RefType = any>(func: (props: Props, context: EmotionCache, ref: Ref<RefType>) => ReactNode): FC<Props & ClassAttributes<RefType>>;
16export function css(template: TemplateStringsArray, ...args: Array<CSSInterpolation>): SerializedStyles;
17export function css(...args: Array<CSSInterpolation>): SerializedStyles;
18export interface GlobalProps {
19 styles: Interpolation<Theme>;
20}
21/**
22 * @desc
23 * JSX generic are supported only after TS@2.9
24 */
25export function Global(props: GlobalProps): ReactElement;
26export function keyframes(template: TemplateStringsArray, ...args: Array<CSSInterpolation>): Keyframes;
27export function keyframes(...args: Array<CSSInterpolation>): Keyframes;
28export interface ArrayClassNamesArg extends Array<ClassNamesArg> {
29}
30export type ClassNamesArg = undefined | null | string | boolean | {
31 [className: string]: boolean | null | undefined;
32} | ArrayClassNamesArg;
33export interface ClassNamesContent {
34 css(template: TemplateStringsArray, ...args: Array<CSSInterpolation>): string;
35 css(...args: Array<CSSInterpolation>): string;
36 cx(...args: Array<ClassNamesArg>): string;
37 theme: Theme;
38}
39export interface ClassNamesProps {
40 children(content: ClassNamesContent): ReactNode;
41}
42/**
43 * @desc
44 * JSX generic are supported only after TS@2.9
45 */
46export function ClassNames(props: ClassNamesProps): ReactElement;
47export const jsx: typeof createElement;
48export namespace jsx {
49 namespace JSX {
50 interface Element extends EmotionJSX.Element {
51 }
52 interface ElementClass extends EmotionJSX.ElementClass {
53 }
54 interface ElementAttributesProperty extends EmotionJSX.ElementAttributesProperty {
55 }
56 interface ElementChildrenAttribute extends EmotionJSX.ElementChildrenAttribute {
57 }
58 type LibraryManagedAttributes<C, P> = EmotionJSX.LibraryManagedAttributes<C, P>;
59 interface IntrinsicAttributes extends EmotionJSX.IntrinsicAttributes {
60 }
61 interface IntrinsicClassAttributes<T> extends EmotionJSX.IntrinsicClassAttributes<T> {
62 }
63 type IntrinsicElements = EmotionJSX.IntrinsicElements;
64 }
65}
\No newline at end of file