import type * as CSS from 'csstype'; /** * Typing for the interpolations. */ export type BasicTemplateInterpolations = string | number; export interface FunctionInterpolation { (props: TProps): CssFunction; } /** * Possible types for a CSS value */ export type CssType = | CSSProps // Typed CSS properties | CssObject // CSS object | FunctionInterpolation // Props provider usage | string; // Plain css string /** * These are all the CSS props that will exist. */ export type CSSProps = CSS.Properties>; export type CssObject = { [key: string]: CssFunction; }; // CSS inside of a CSS expression export type CssFunction = | CssType | BasicTemplateInterpolations // CSS values in tagged template expression | boolean // Something like `false && styles` | undefined; // Something like `undefined && styles`