diff --git a/src/servers/model/utils/fetch-retry.ts b/src/servers/model/utils/fetch-retry.ts
index 7071dc3089bad4fe723cf9779cb3cd99aa184ad6..38cad5f9b611ef6723b2944a104e091e4ca06385 100644
--- a/src/servers/model/utils/fetch-retry.ts
+++ b/src/servers/model/utils/fetch-retry.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import fetch from 'node-fetch';
+import fetch, { Response } from 'node-fetch';
 import { retryIf } from '../../../mol-util/retry-if';
 
 const RETRIABLE_NETWORK_ERRORS = [
@@ -16,7 +16,7 @@ function isRetriableNetworkError(error: any) {
     return error && RETRIABLE_NETWORK_ERRORS.includes(error.code);
 }
 
-export async function fetchRetry(url: string, timeout: number, retryCount: number) {
+export async function fetchRetry(url: string, timeout: number, retryCount: number): Promise<Response> {
     const result = await retryIf(() => fetch(url, { timeout }), {
         retryThenIf: r => r.status >= 500 && r.status < 600,
         // TODO test retryCatchIf
diff --git a/tsconfig.json b/tsconfig.json
index d8dbd7dc9bc460ac6a3f922fe9b46a6d7f7fcede..96f6a540ec7332a6f022c397727e156b01c27064 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,6 +1,7 @@
 {
     "compilerOptions": {
         "composite": true,
+        "declaration": true,
         "target": "es5",
         "alwaysStrict": true,
         "noImplicitAny": true,