export function SuccessResponse<HeaderType = {}>(name: string | number, description?: string): Function {
  return () => {
    return;
  };
}

export function Response<ExampleType, HeaderType = {}>(name: string | number, description?: string, example?: ExampleType): Function {
  return () => {
    return;
  };
}

/**
 * Inject a library-agnostic responder function that can be used to construct type-checked (usually error-) responses.
 *
 * The type of the responder function should be annotated `TsoaResponse<Status, Data, Headers>` in order to support OpenAPI documentation.
 */
export function Res(): Function {
  return () => {
    return;
  };
}

export function SuccessResponse(name: string | number, description?: string): Function;

export function SuccessResponse<T>(name: string | number, description?: string): Function;

export function SuccessResponse<T>(name: string | number, description?: string): Function {
  return () => {
    return;
  };
}

export function Response(name: string | number, description?: string): Function;

export function Response<U>(name: string | number, description?: string): Function;

export function Response<T>(name: string | number, description?: string, example?: T): Function;

export function Response<T, U>(name: string | number, description?: string, example?: T): Function;

export function Response<T, U>(name: string | number, description?: string, example?: T): Function {
  return () => {
    return;
  };
}

/**
 * Inject a library-agnostic responder function that can be used to construct type-checked (usually error-) responses.
 *
 * The type of the responder function should be annotated `TsoaResponse<Status, Data, Headers>` in order to support OpenAPI documentation.
 */
export function Res(): Function {
  return () => {
    return;
  };
}

--- 
+++ 
@@ -1,22 +1,10 @@
-export function SuccessResponse(name: string | number, description?: string): Function;
-
-export function SuccessResponse<T>(name: string | number, description?: string): Function;
-
-export function SuccessResponse<T>(name: string | number, description?: string): Function {
+export function SuccessResponse<HeaderType = {}>(name: string | number, description?: string): Function {
   return () => {
     return;
   };
 }
 
-export function Response(name: string | number, description?: string): Function;
-
-export function Response<U>(name: string | number, description?: string): Function;
-
-export function Response<T>(name: string | number, description?: string, example?: T): Function;
-
-export function Response<T, U>(name: string | number, description?: string, example?: T): Function;
-
-export function Response<T, U>(name: string | number, description?: string, example?: T): Function {
+export function Response<ExampleType, HeaderType = {}>(name: string | number, description?: string, example?: ExampleType): Function {
   return () => {
     return;
   };
chore: Edit decorator generic type more readable

Remove optional overrloading for SuccessResponse & Response type.
Edit SuccessResponse & Response type's generic type more readable.
