import { ComponentType, DetailedHTMLProps, HTMLAttributes } from 'react'; import { LazyLoadImageProps } from 'react-lazy-load-image-component'; import { BoxProps, Theme } from '@mui/material'; import { MUIStyledCommonProps, ResponsiveStyleValue } from '@mui/system'; import { Property } from 'csstype'; export interface ImageProps extends BoxProps<'span'>, Pick< LazyLoadImageProps, | 'alt' | 'src' | 'delayTime' | 'delayMethod' | 'threshold' | 'beforeLoad' | 'placeholder' | 'wrapperProps' | 'scrollPosition' | 'visibleByDefault' | 'wrapperClassName' | 'useIntersectionObserver' | 'placeholderSrc' | 'srcSet' > { aspectRatio?: | ResponsiveStyleValue[] | undefined> | (( theme: Theme ) => ResponsiveStyleValue< Property.AspectRatio | readonly NonNullable[] | undefined >) | null; /** * @default false */ disabledEffect?: boolean; /** * @default 'cover' */ objectFit?: | ResponsiveStyleValue[] | undefined> | (( theme: Theme ) => ResponsiveStyleValue< Property.ObjectFit | readonly NonNullable[] | undefined >) | null; ref?: React.Ref; /** * Name of the effect to use. * @default 'blur' */ effect?: LazyLoadImageProps['effect']; slotProps?: { img?: BoxProps>; overlay?: MUIStyledCommonProps & DetailedHTMLProps, HTMLSpanElement>; }; } declare module '@mui/material' { interface Components { ReevolveImage?: { defaultProps?: Partial; }; } }