import * as styledComponents from 'styled-components'; // Styled components typings for using babel-plugin BEFORE typescript declare module 'styled-components' { type Attrs, T> = { [K in keyof A]: ((props: ThemedStyledProps) => A[K]) | A[K] }; type KeyofBase = keyof any; type Diff = ({ [P in T]: P } & { [P in U]: never })[T]; type DiffBetween = Pick> & Pick>; interface ThemedStyledFunction { // adding "| string[]" for transpileTemplateLiterals and similar below ( strings: TemplateStringsArray | string[], ...interpolations: Array>> ): StyledComponentClass; ( strings: TemplateStringsArray | string[], ...interpolations: Array>> ): StyledComponentClass

; attrs = {}>( attrs: Attrs

, ): ThemedStyledFunction, T, DiffBetween>; // adding "withConfig" for transpileTemplateLiterals withConfig(config: any): ThemedStyledFunction; } export interface BaseThemedCssFunction { ( strings: TemplateStringsArray | string[], ...interpolations: SimpleInterpolation[] ): InterpolationValue[];

( strings: TemplateStringsArray | string[], ...interpolations: Array>> ): Array>>; } interface ThemedStyledComponentsModule { keyframes( strings: TemplateStringsArray | string[], ...interpolations: SimpleInterpolation[] ): Keyframes; createGlobalStyle

( strings: TemplateStringsArray | string[], ...interpolations: Array>> ): GlobalStyleClass; } }