import * as React from 'react'; import { CreateMUIStyled as CreateMUIStyledStyledEngine, CSSInterpolation, } from '@mui/styled-engine'; import styleFunctionSx, { SxProps } from './styleFunctionSx'; import { Theme as DefaultTheme } from './createTheme'; export function shouldForwardProp(propName: PropertyKey): boolean; export interface MUIStyledCommonProps { theme?: Theme; as?: React.ElementType; sx?: SxProps; } export interface MuiStyledOptions { name?: string; slot?: string; // The difference between Interpolation and CSSInterpolation is that the former supports functions based on props // If we want to support props in the overrides, we will need to change the CSSInterpolation to Interpolation overridesResolver?: (props: any, styles: Record) => CSSInterpolation; skipVariantsResolver?: boolean; skipSx?: boolean; } export type CreateMUIStyled = CreateMUIStyledStyledEngine< MUIStyledCommonProps, MuiStyledOptions, T >; export default function createStyled(options?: { themeId?: string; defaultTheme?: T; rootShouldForwardProp?: (prop: PropertyKey) => boolean; slotShouldForwardProp?: (prop: PropertyKey) => boolean; styleFunctionSx?: typeof styleFunctionSx; }): CreateMUIStyled;