Repository: material-ui
Issue: buttonClasses.ts is missing options for success, error, warning, and info
Labels: discussion

<!-- Provide a general summary of the issue in the Title above -->

It appears that several button variants are missing from buttonClasses.ts

<!--
  Thank you very much for contributing to MUI by creating an issue! ❤️
  To avoid duplicate issues we ask you to check off the following list.
-->

<!-- Checked checkbox should look like this: [x] -->

- [x] The issue is present in the latest release.
- [x] I have searched the [issues](https://github.com/mui-org/material-ui/issues) of this repository and believe that this is not a duplicate.

## Current Behavior 😯

I am trying to change the hover color for a number of button variants using a custom theme.  I'd like to set the option in the theme like this:

```jsx
export const themeOptions: ThemeOptions = {
    palette: { ... }
    components: {
        MuiButton: {
            styleOverrides: {
                containedPrimary: {  // OK
                    '&:hover': {
                        background: '#F00'
                    },
                },
                containedError: {  // NOT OK
                    '&:hover': {
                        background: '#0F0'
                    },
                },
                ...
            }
        }
    }
};
```

This results in TypeScript complaining as follows:
`  Object literal may only specify known properties, and 'containedError' does not exist in type 'Partial<OverridesStyleRules<keyof ButtonClasses>>'.ts(2322) `

<!-- Describe what happens instead of the expected behavior. -->

## Expected Behavior 🤔

I'd expect that these button variants exist as supported types by buttonClasses.

<!-- Describe what should happen. -->

## Steps to Reproduce 🕹

<!--
  You should use the official codesandbox template as a starting point: https://mui.com/r/issue-template-next

  If that's not sufficient, please create a cloneable repository.

  Pieces of code will result in a slower response time since a maintainer has to do additional work to reproduce the problem.

  If you have an issue concerning TypeScript please start from this TypeScript playground: https://mui.com/r/ts-issue-template

  Issues without some form of live example have a longer response time.
-->

Steps:

1. Create a custom theme using TypeScript
2. Add a `MuiButton` `styleOverride` for a variant like `containedError`.
3. Observe the TypeScript error

## Context 🔦

I'm trying to change the styling of button variants.

## Your Environment 🌎

<!--
  Run `npx @mui/envinfo` and post the results.
  If you encounter issues with TypeScript please include the used tsconfig.
-->
<details>
  <summary>`npx @mui/envinfo`</summary>
Using Chrome

  System:
    OS: macOS 11.6
  Binaries:
    Node: 16.1.0 - ~/.nvm/versions/node/v16.1.0/bin/node
    Yarn: Not Found
    npm: 7.13.0 - ~/.nvm/versions/node/v16.1.0/bin/npm
  Browsers:
    Chrome: 95.0.4638.69
    Edge: Not Found
    Firefox: Not Found
    Safari: 14.1.2
  npmPackages:
    @emotion/react: ^11.5.0 => 11.5.0 
    @emotion/styled:  10.0.27 
    @mui/core: ^5.0.0-alpha.51 => 5.0.0-alpha.54 
    @mui/material: ^5.0.3 => 5.1.0 
    @mui/private-theming:  5.1.0 
    @mui/styled-engine:  5.1.0 
    @mui/system: ^5.0.4 => 5.1.0 
    @mui/types:  7.1.0 
    @mui/utils:  5.1.0 
    @types/react: ^17.0.14 => 17.0.33 
    react: 17.0.2 => 17.0.2 
    react-dom: 17.0.2 => 17.0.2 
    typescript: ^4.3.5 => 4.4.4 
</details>

<details>
  <summary>tsconfig</summary>
{
  "compilerOptions": {
    "target": "es5",
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "allowJs": true,
    "skipLibCheck": true,
    "strict": false,
    "forceConsistentCasingInFileNames": true,
    "noEmit": true,
    "esModuleInterop": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "jsx": "preserve"
  },
  "include": [
    "next-env.d.ts",
    "**/*.ts",
    "**/*.tsx"
  ],
  "exclude": [
    "node_modules"
  ]
}
</details>