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;
}
}