;
type ThemedStyledComponentFactories = {
[TTag in keyof JSX.IntrinsicElements]: ThemedStyledFunction;
};
export interface ThemedBaseStyledInterface extends ThemedStyledComponentFactories {
(tag: TTag): ThemedStyledFunction
;
(component: StyledComponentClass
): ThemedStyledFunction
;
(component: React.ComponentType
): ThemedStyledFunction
>;
}
export type BaseStyledInterface = ThemedBaseStyledInterface;
export type ThemedStyledInterface = ThemedBaseStyledInterface;
export type StyledInterface = ThemedStyledInterface;
export interface ThemeProviderProps {
theme?: T | ((theme: T) => T);
}
export type ThemeProviderComponent = ComponentClass>;
export interface ThemedCssFunction {
(strings: TemplateStringsArray, ...interpolations: SimpleInterpolation[]): InterpolationValue[];
(strings: TemplateStringsArray, ...interpolations: Interpolation>[]): FlattenInterpolation>[];
}
// Helper type operators
type Diff = ({ [P in T]: P } & { [P in U]: never } & { [x: string]: never })[T];
type Omit = Pick>;
type WithOptionalTheme