diff --git a/src/index.ts b/src/index.ts
index 286fc2a57..65a3990e1 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -144,7 +144,13 @@ export class OAuthApp<
     // @ts-expect-error TODO: figure this out
     this.octokit = octokit;
 
-    this.getUserOctokit = getUserOctokitWithState.bind(null, state);
+    this.getUserOctokit = getUserOctokitWithState.bind(
+      null,
+      state,
+    ) as GetUserOctokitWithStateInterface<
+      ClientTypeFromOptions<TOptions>,
+      OctokitTypeFromOptions<TOptions>
+    >;
 
     this.getWebFlowAuthorizationUrl = getWebFlowAuthorizationUrlWithState.bind(
       null,
@@ -180,7 +186,8 @@ export class OAuthApp<
   on: AddEventHandler<TOptions>;
   octokit: OctokitTypeFromOptions<TOptions>;
   getUserOctokit: GetUserOctokitWithStateInterface<
-    ClientTypeFromOptions<TOptions>
+    ClientTypeFromOptions<TOptions>,
+    OctokitTypeFromOptions<TOptions>
   >;
   getWebFlowAuthorizationUrl: GetWebFlowAuthorizationUrlInterface<
     ClientTypeFromOptions<TOptions>
diff --git a/src/methods/get-user-octokit.ts b/src/methods/get-user-octokit.ts
index f1fe79256..262968661 100644
--- a/src/methods/get-user-octokit.ts
+++ b/src/methods/get-user-octokit.ts
@@ -62,10 +62,11 @@ export async function getUserOctokitWithState(
 
 export interface GetUserOctokitWithStateInterface<
   TClientType extends ClientType,
+  TOctokitInstance extends OctokitInstance,
 > {
   (
     options: TClientType extends "oauth-app"
       ? GetUserOctokitOAuthAppOptions
       : GetUserOctokitGitHubAppOptions,
-  ): Promise<OctokitInstance>;
+  ): Promise<TOctokitInstance>;
 }