### Describe the bug

`AxiosHeaders` types makes it so trying to call methods on the instance raises a `typescript` compilation error.

<img width="1142" alt="image" src="https://user-images.githubusercontent.com/476069/209943677-fa7775e7-0f23-4b86-88ae-ad28df8c0533.png">

`AxiosRequestConfig.headers` can be either `RawAxiosRequestHeaders` or `AxiosHeaders`. `RawAxiosRequestHeaders`, being an alias of `Record<string, AxiosHeaderValue>` causes methods to not be callable.

### To Reproduce

Invoke any method on `AxiosRequestConfig.headers`.

### Code snippet

```js
const api = axios.create({ ... })

api.interceptors.request.use(req => {
  // Trying to access any method on `req.headers` will result in
  // a "This expression is not callable" TS error
  req.headers.set('foo', 'bar')
})
```


### Expected behavior

Should be able to call any method declared in `AxiosHeaders`.

### Environment

* `axios`: `1.2.2`
* `node`: `18.12.1`
* `typescript`: `4.9.4`
* macOS Ventura `13.1` 

index.d.ts
: AxiosHeaderTester;
  setUserAgent: AxiosHeaderSetter;
  getUserAgent: AxiosHeaderGetter;
  hasUserAgent: AxiosHeaderTester;
  setContentEncoding: AxiosHeaderSetter;
  getContentEncoding: AxiosHeaderGetter;
  hasContentEncoding: AxiosHeaderTester;
}
export type RawAxiosRequestHeaders = Partial<RawAxiosHeaders & MethodsHeaders & CommonHeaders>;
export type AxiosRequestHeaders = RawAxiosRequestHeaders & AxiosHeaders;
export type RawAxiosResponseHeaders = Partial<Record<string, string> & {
  "set-cookie"?: string[]
}>;
export type AxiosResponseHeaders = RawAxiosResponseHeaders & AxiosHeaders;
export interface AxiosRequestTransformer {
  (this: AxiosRequestConfig, data: any, headers: AxiosRequestHeaders): any;
}
export interface AxiosResponseTransformer {
  (this: AxiosRequestConfig, data: any, headers: AxiosResponseHeaders, status?: number): any;
}
export interface AxiosAdapter {
  (config: AxiosRequestConfig): AxiosPromise;
}
export interface AxiosBasicCredentials {
  username: string;
  password: string;
}
export interface AxiosProxyConfig {
  host: string;
  port: number;
  auth?: {
    username: string;
    password: string;
  };
  protocol?: string;
}
export enum HttpStatusCode {
  Continue = 100,
  SwitchingProtocols = 101,
  Processing = 102,
  EarlyHints = 103,
  Ok = 200,
  Created = 201,
  Accepted = 202,
  NonAuthoritativeInformation = 203,
  NoContent = 204,
  ResetContent = 205,
  PartialContent = 206,
  MultiStatus = 207,
  AlreadyReported = 208,
  ImUsed = 226,
  MultipleChoices = 300,
  MovedPermanently = 301,
  Found = 302,
  SeeOther = 303,
  NotModified = 304,
  UseProxy = 305,
  Unused = 306,
  TemporaryRedirect = 307,
  PermanentRedirect = 308,
  BadRequest = 400,
  Unauthorized = 401,
  PaymentRequired = 402,
  Forbidden = 403,
  NotFound = 404,
  MethodNotAllowed = 405,
  NotAcceptable = 406,
  ProxyAuthenticationRequired = 407,
  RequestTimeout = 408,
  Conflict = 409,
  Gone = 410,
  LengthRequired = 411,
  PreconditionFailed = 412,
  PayloadT