import type { theme } from "./theme";
import type { colors, typography } from "./theme/tokens";
import { theme } from "./";

type DocflowTypography = {
  [Key in keyof typeof typography]: (typeof typography)[Key];
};

type DocflowPalette = {
  [Key in keyof typeof colors]: (typeof colors)[Key];
};

type DocflowTheme = {
  [Key in keyof typeof theme]: (typeof theme)[Key];
};

declare module "@material-ui/core/styles/createTheme" {
  interface Theme extends DocflowTheme {}
  interface ThemeOptions extends DocflowTheme {}
}

declare module "@material-ui/core/styles/createPalette" {
  interface Palette extends DocflowPalette {}
  interface PaletteOptions extends DocflowPalette {}
}

declare module "@material-ui/core/styles/createTypography" {
  interface Typography extends DocflowTypography {}
  interface TypographyOptions extends DocflowTypography {}
}
