// Definitions by: Junyoung Clare Jang // TypeScript Version: 2.8 import { RegisteredCache, SerializedStyles } from '@emotion/utils' import * as CSS from 'csstype' export { RegisteredCache, SerializedStyles } export type CSSProperties = CSS.PropertiesFallback export type CSSPropertiesWithMultiValues = { [K in keyof CSSProperties]: | CSSProperties[K] | ReadonlyArray> } export type CSSPseudos = { [K in CSS.Pseudos]?: CSSObject } export interface ArrayCSSInterpolation extends ReadonlyArray {} export type InterpolationPrimitive = | null | undefined | boolean | number | string | ComponentSelector | Keyframes | SerializedStyles | CSSObject export type CSSInterpolation = InterpolationPrimitive | ArrayCSSInterpolation export interface CSSOthersObject { [propertiesName: string]: CSSInterpolation } export interface CSSObject extends CSSPropertiesWithMultiValues, CSSPseudos, CSSOthersObject {} export interface ComponentSelector { __emotion_styles: any } export type Keyframes = { name: string styles: string anim: number toString: () => string } & string export interface ArrayInterpolation extends ReadonlyArray> {} export interface FunctionInterpolation { (props: Props): Interpolation } export type Interpolation = | InterpolationPrimitive | ArrayInterpolation | FunctionInterpolation export function serializeStyles( args: Array>, registered?: RegisteredCache, props?: Props ): SerializedStyles