import { type Theme as MuiTheme } from '@mui/material/styles';

import { type Elevation } from '../theme/elevation';
import { type MicroSpacing } from '../theme/microSpacing';
import {
  type Palette,
  type Shape,
  type TypographyThemeOptions,
} from '../theme/types';

declare module '@mui/material/styles' {
  interface BreakpointOverrides {
    laptop: true;
  }

  export interface Theme
    extends Omit<MuiTheme, 'shadows' | 'palette' | 'shape' | 'typography'> {
    elevation: Elevation;
    palette: Palette;
    shape: Shape;
    typography: TypographyThemeOptions;
    microSpacing: MicroSpacing;
  }
}
