diff --git a/apps/web/app/(fed-cm)/fed-cm/login/SetLoginStatus.tsx b/apps/web/app/(fed-cm)/fed-cm/login/SetLoginStatus.tsx
index 18017319..b7c5395e 100644
--- a/apps/web/app/(fed-cm)/fed-cm/login/SetLoginStatus.tsx
+++ b/apps/web/app/(fed-cm)/fed-cm/login/SetLoginStatus.tsx
@@ -5,11 +5,11 @@ import { useEffect, type FC } from 'react';
 export const SetLoginStatus: FC = () => {
   useEffect(() => {
     if('login' in navigator) {
-      (navigator.login as { setStatus(status: string): void }).setStatus('logged-in');
+      navigator.login.setStatus('logged-in');
     }
 
     if('IdentityProvider' in window) {
-      (window.IdentityProvider as { close(): void }).close();
+      window.IdentityProvider.close();
     }
   });
 
diff --git a/apps/web/types.d.ts b/apps/web/types.d.ts
index 16d8f9dc..a968ae9e 100644
--- a/apps/web/types.d.ts
+++ b/apps/web/types.d.ts
@@ -8,3 +8,26 @@ declare module '*.svg?svgr' {
   const SVG: React.VFC<React.SVGProps<SVGSVGElement>>;
   export default SVG;
 }
+
+interface Navigator {
+  /** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/login) */
+  login: NavigatorLogin
+}
+
+/** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/NavigatorLoginn) */
+interface NavigatorLogin {
+  /** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/NavigatorLogin/setStatus) */
+  setStatus(status: 'logged-in' | 'logged-out'): Promise<undefined>
+}
+
+interface Window {
+  /** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/IdentityProvider) */
+  IdentityProvider: IdentityProvider
+}
+
+/** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/IdentityProvider) */
+interface IdentityProvider {
+  /** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/IdentityProvider/close_static) */
+  close(): undefined
+}
+