/**
 * Flowtype definitions for types
 * Generated by Flowgen from a Typescript Definition
 * Flowgen v1.17.0
 * @flow
 */
import * as CSS from 'csstype';
/**
 * Typing for the interpolations.
 */
export type BasicTemplateInterpolations = string | number;
export interface FunctionInterpolation<TProps> {
  (props: TProps): CssFunction<TProps>;
}
/**
 * Possible types for a CSS value
 */
export type CssType<TProps> = CssObject<TProps> | FunctionInterpolation<TProps> | string;
/**
 * These are all the CSS props that will exist.
 */
export type CSSProps<TProps> = CSS.Properties<CssFunction<TProps>>;
export type CssObject<TProps> = {
  ...CSSProps<TProps>,
  [key: string]: CssFunction<TProps>,
  ...
};
export type CssFunction<TProps = mixed> =
  | CssType<TProps>
  | BasicTemplateInterpolations
  | boolean
  | void;
