import * as React from "react";
import { StatelessComponent, ComponentClass, PureComponent, ReactElement } from "react";
import { HTMLTags, SVGTags } from "./tags";
type Component
;
export type ThemedHtmlStyledFunction = ThemedStyledFunction, T>;
export type HtmlStyledFunction = ThemedHtmlStyledFunction;
export type ThemedSvgStyledFunction = ThemedStyledFunction, T>;
export type SvgStyledFunction = ThemedSvgStyledFunction;
type ThemedStyledComponentFactoriesHTML = {
[K in keyof HTMLTags]: ThemedHtmlStyledFunction;
};
type ThemedStyledComponentFactoriesSVG = {
[K in keyof SVGTags]: ThemedSvgStyledFunction;
};
type ThemedStyledComponentFactories = ThemedStyledComponentFactoriesHTML & ThemedStyledComponentFactoriesSVG;
export interface ThemedBaseStyledInterface extends ThemedStyledComponentFactories {
(component: Component
): ThemedStyledFunction
>;
(component: Component
): 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