import { CSSProperties } from './css-properties' /** * `glamorousComponentFactory` returns a ComponentClass * * @see {@link https://github.com/paypal/glamorous/blob/master/src/create-glamorous.js#L28-L131} */ export type GlamorousComponent

= React.ComponentClass

/** * StaticStyles are objects of CSS Properties. * * @see {@link https://github.com/paypal/glamorous/blob/master/src/create-glamorous.js#L28-L131} */ export type StaticStyles = Partial /** * DynamicStyledFunction generates styles based on props * and themes. * * @see {@link https://github.com/paypal/glamorous/blob/master/src/create-glamorous.js#L28-L131} */ export type DynamicStyledFunction = ( props: CustomProps, theme?: ThemeProps ) => Partial type Styles = Array | StaticStyles> // TODO: Using a union for a parameter kills autocomplete so we // use overloading to give autocomplete on the first two styles // and retain typesafety on additional styles // s = StaticStyles, d = DynamicStyledFunction // s // s,s // s,d // s,d,s // s,d,d // s,s,d // s,s,s // d // d,s // d,d // d,s,d // d,s,s // d,d,s // d,d,d export interface ExtraGlamorousProps { innerRef?: (instance: any) => void; css?: CSSProperties; } export interface StyledFunction { ( style1: StaticStyles, ...styles: Styles ): GlamorousComponent; } export interface StyledFunction { ( style1: StaticStyles, style2: StaticStyles, ...styles: Styles ): GlamorousComponent } export interface StyledFunction { ( style1: StaticStyles, style2: DynamicStyledFunction, ...styles: Styles ): GlamorousComponent } export interface StyledFunction { ( style1: StaticStyles, style2: DynamicStyledFunction, style3: StaticStyles, ...styles: Styles ): GlamorousComponent } export interface StyledFunction { ( style1: StaticStyles, style2: DynamicStyledFunction, style3: DynamicStyledFunction, ...styles: Styles ): GlamorousComponent } export interface StyledFunction { ( style1: StaticStyles, style2: StaticStyles, style3: DynamicStyledFunction, ...styles: Styles ): GlamorousComponent } export interface StyledFunction { ( style1: StaticStyles, style2: StaticStyles, style3: StaticStyles, ...styles: Styles ): GlamorousComponent } export interface StyledFunction { ( style1: DynamicStyledFunction, ...styles: Styles ): GlamorousComponent } export interface StyledFunction { ( style1: DynamicStyledFunction, style2: StaticStyles, ...styles: Styles ): GlamorousComponent } export interface StyledFunction { ( style1: DynamicStyledFunction, style2: DynamicStyledFunction, ...styles: Styles ): GlamorousComponent } export interface StyledFunction { ( style1: DynamicStyledFunction, style2: StaticStyles, style3: DynamicStyledFunction, ...styles: Styles ): GlamorousComponent } export interface StyledFunction { ( style1: DynamicStyledFunction, style2: StaticStyles, style3: StaticStyles, ...styles: Styles ): GlamorousComponent } export interface StyledFunction { ( style1: DynamicStyledFunction, style2: DynamicStyledFunction, style3: StaticStyles, ...styles: Styles ): GlamorousComponent } export interface StyledFunction { ( style1: DynamicStyledFunction, style2: DynamicStyledFunction, style3: DynamicStyledFunction, ...styles: Styles ): GlamorousComponent } export type HtmlStyledFunction = StyledFunction, Properties> export type SvgStyledFunction = StyledFunction, Properties>