```typescript
export interface AxiosInstance {
  (config: AxiosRequestConfig): AxiosPromise;
  (url: string, config?: AxiosRequestConfig): AxiosPromise;
  defaults: AxiosRequestConfig;
  interceptors: {
    request: AxiosInterceptorManager<AxiosRequestConfig>;
    response: AxiosInterceptorManager<AxiosResponse>;
  };
  request<T = any>(config: AxiosRequestConfig): AxiosPromise<T>;
  get<T = any>(url: string, config?: AxiosRequestConfig): AxiosPromise<T>;
  delete(url: string, config?: AxiosRequestConfig): AxiosPromise;
  head(url: string, config?: AxiosRequestConfig): AxiosPromise;
  post<T = any>(url: string, data?: any, config?: AxiosRequestConfig): AxiosPromise<T>;
  put<T = any>(url: string, data?: any, config?: AxiosRequestConfig): AxiosPromise<T>;
  patch<T = any>(url: string, data?: any, config?: AxiosRequestConfig): AxiosPromise<T>;
}
```



This is missing a line which should be
  `options(url: string, config?: AxiosRequestConfig): AxiosPromise;`

test/typescript/axios.ts
.then(handleStringResponse)
  .catch(handleError);
axios.delete<User, string>('/user')
  .then(handleStringResponse)
  .catch(handleError);
axios.post<User, string>('/user', { foo: 'bar' })
  .then(handleStringResponse)
  .catch(handleError);
axios.post<User, string>('/user', { foo: 'bar' }, { headers: { 'X-FOO': 'bar' } })
  .then(handleStringResponse)
  .catch(handleError);
axios.put<User, string>('/user', { foo: 'bar' })
  .then(handleStringResponse)
  .catch(handleError);
axios.patch<User, string>('/user', { foo: 'bar' })
  .then(handleStringResponse)
  .catch(handleError);
axios.request<User, string>({
  method: 'get',
  url: '/user?id=12345'
})
  .then(handleStringResponse)
  .catch(handleError);
const instance1: AxiosInstance = axios.create();
const instance2: AxiosInstance = axios.create(config);
instance1(config)
  .then(handleResponse)
  .catch(handleError);
instance1.request(config)
  .then(handleResponse)