import { Omit, IsAny, CoerceEmptyInterface } from '@material-ui/types'; import { CreateCSSProperties, StyledComponentProps, WithStylesOptions, } from 'material-ui-styles-ssr/withStyles'; import { Theme as DefaultTheme } from './createMuiTheme'; import * as React from 'react'; // These definitions are almost identical to the ones in material-ui-styles-ssr/styled // Only difference is that ComponentCreator has a default theme type // If you need to change these types, update the ones in material-ui-styles-ssr as well /** * @internal */ export type ComponentCreator = < Theme = DefaultTheme, Props extends {} = any >( styles: | CreateCSSProperties | (({ theme, ...props }: { theme: Theme } & Props) => CreateCSSProperties), options?: WithStylesOptions, ) => React.ComponentType< Omit< JSX.LibraryManagedAttributes>, 'classes' | 'className' > & StyledComponentProps<'root'> & { className?: string } & CoerceEmptyInterface >; export interface StyledProps { className: string; } export default function styled( Component: Component, ): ComponentCreator;