{
  "api": {
    "name": "SocialLoginPlugin",
    "slug": "socialloginplugin",
    "docs": "",
    "tags": [],
    "methods": [
      {
        "name": "initialize",
        "signature": "(options: InitializeOptions) => Promise<void>",
        "parameters": [
          {
            "name": "options",
            "docs": "",
            "type": "InitializeOptions"
          }
        ],
        "returns": "Promise<void>",
        "tags": [
          {
            "name": "description",
            "text": "initialize the plugin with the required options"
          }
        ],
        "docs": "Initialize the plugin",
        "complexTypes": [
          "InitializeOptions"
        ],
        "slug": "initialize"
      },
      {
        "name": "login",
        "signature": "<T extends \"apple\" | \"google\" | \"facebook\" | \"twitter\" | \"linkedin\" | \"tiktok\" | \"oauth2\" | \"telegram\">(options: Extract<LoginOptions, { provider: T; }>) => Promise<{ provider: T; result: ProviderResponseMap[T]; }>",
        "parameters": [
          {
            "name": "options",
            "docs": "",
            "type": "Extract<{ provider: 'facebook'; options: FacebookLoginOptions; }, { provider: T; }> | Extract<{ provider: 'google'; options: GoogleLoginOptions; }, { provider: T; }> | Extract<{ provider: 'apple'; options: AppleProviderOptions; }, { provider: T; }> | Extract<{ provider: 'twitter'; options: TwitterLoginOptions; }, { provider: T; }> | Extract<{ provider: 'telegram'; options: TelegramLoginOptions; }, { provider: T; }> | Extract<{ provider: 'linkedin'; options: LinkedInLoginOptions; }, { provider: T; }> | Extract<{ provider: 'tiktok'; options: TikTokLoginOptions; }, { provider: T; }> | Extract<{ provider: 'oauth2'; options: OAuth2LoginOptions; }, { provider: T; }>"
          }
        ],
        "returns": "Promise<{ provider: T; result: ProviderResponseMap[T]; }>",
        "tags": [
          {
            "name": "description",
            "text": "login with the selected provider\n\nOn user dismissal/cancellation, the Promise is rejected with `code === 'USER_CANCELLED'` (see `SocialLoginError`)."
          }
        ],
        "docs": "Login with the selected provider",
        "complexTypes": [
          "T",
          "ProviderResponseMap",
          "LoginOptions",
          "Extract"
        ],
        "slug": "login"
      },
      {
        "name": "logout",
        "signature": "(options: { provider: 'apple' | 'google' | 'facebook' | 'twitter' | 'telegram' | 'linkedin' | 'tiktok' | 'oauth2'; providerId?: string; }) => Promise<void>",
        "parameters": [
          {
            "name": "options",
            "docs": "",
            "type": "{ provider: 'apple' | 'google' | 'facebook' | 'twitter' | 'linkedin' | 'tiktok' | 'oauth2' | 'telegram'; providerId?: string | undefined; }"
          }
        ],
        "returns": "Promise<void>",
        "tags": [
          {
            "name": "description",
            "text": "Logout the user from the specified provider\n\n**Google Offline Mode Limitation:**\nThis method is NOT supported when Google is initialized with `mode: 'offline'`.\nIt will reject with error: \"logout is not implemented when using offline mode\"\n\n**Google Restore Credentials (Android):**\nWhen logging out from Google, the plugin also clears any stored Restore Credential\n(`google#clearRestoreCredential`) in addition to Credential Manager sign-in state."
          },
          {
            "name": "throws",
            "text": "Error if Google provider is in offline mode"
          }
        ],
        "docs": "Logout",
        "complexTypes": [],
        "slug": "logout"
      },
      {
        "name": "isLoggedIn",
        "signature": "(options: isLoggedInOptions) => Promise<{ isLoggedIn: boolean; }>",
        "parameters": [
          {
            "name": "options",
            "docs": "",
            "type": "isLoggedInOptions"
          }
        ],
        "returns": "Promise<{ isLoggedIn: boolean; }>",
        "tags": [
          {
            "name": "description",
            "text": "Check if the user is currently logged in with the specified provider\n\n**Google Offline Mode Limitation:**\nThis method is NOT supported when Google is initialized with `mode: 'offline'`.\nIt will reject with error: \"isLoggedIn is not implemented when using offline mode\""
          },
          {
            "name": "throws",
            "text": "Error if Google provider is in offline mode"
          }
        ],
        "docs": "IsLoggedIn",
        "complexTypes": [
          "isLoggedInOptions"
        ],
        "slug": "isloggedin"
      },
      {
        "name": "getAuthorizationCode",
        "signature": "(options: AuthorizationCodeOptions) => Promise<AuthorizationCode>",
        "parameters": [
          {
            "name": "options",
            "docs": "",
            "type": "AuthorizationCodeOptions"
          }
        ],
        "returns": "Promise<AuthorizationCode>",
        "tags": [
          {
            "name": "description",
            "text": "Get the authorization code for server-side authentication\n\n**Google Offline Mode Limitation:**\nThis method is NOT supported when Google is initialized with `mode: 'offline'`.\nIt will reject with error: \"getAuthorizationCode is not implemented when using offline mode\"\n\nIn offline mode, the authorization code (serverAuthCode) is already returned by the `login()` method.\n\nTelegram login does not produce an authorization code; use the `hash` from `login()` and verify it on your backend."
          },
          {
            "name": "throws",
            "text": "Error if Google provider is in offline mode"
          }
        ],
        "docs": "Get the current authorization code",
        "complexTypes": [
          "AuthorizationCode",
          "AuthorizationCodeOptions"
        ],
        "slug": "getauthorizationcode"
      },
      {
        "name": "refresh",
        "signature": "(options: LoginOptions) => Promise<void>",
        "parameters": [
          {
            "name": "options",
            "docs": "",
            "type": "LoginOptions"
          }
        ],
        "returns": "Promise<void>",
        "tags": [
          {
            "name": "description",
            "text": "refresh the access token\n\n**Google Offline Mode Limitation:**\nThis method is NOT supported when Google is initialized with `mode: 'offline'`.\nOffline mode only returns `serverAuthCode` for backend token exchange, so token refresh must happen on your backend.\nThe plugin logs and rejects with a message explaining that you should send `serverAuthCode` to your backend,\nrefresh the Google tokens there, or switch to `mode: 'online'` for client-side refresh.\n\n**Google Web Limitation:**\nOn Web, Google `refresh()` is not implemented, even when using `mode: 'online'`.\nCall `login()` again on Web to obtain a fresh token instead."
          },
          {
            "name": "throws",
            "text": "Error if Google provider is in offline mode, or on Web where Google `refresh()` is not implemented"
          }
        ],
        "docs": "Refresh the access token",
        "complexTypes": [
          "LoginOptions"
        ],
        "slug": "refresh"
      },
      {
        "name": "refreshToken",
        "signature": "(options: RefreshTokenOptions) => Promise<OAuth2LoginResponse>",
        "parameters": [
          {
            "name": "options",
            "docs": "",
            "type": "RefreshTokenOptions"
          }
        ],
        "returns": "Promise<OAuth2LoginResponse>",
        "tags": [],
        "docs": "OAuth2 refresh-token helper (feature parity with Capawesome OAuth).\n\nScope:\n- Applies to the built-in `oauth2` provider and the LinkedIn and TikTok convenience wrappers.\n- Requires a token endpoint (either `accessTokenEndpoint`/`tokenEndpoint` or `issuerUrl` discovery).\n\nSecurity note:\n- This does not validate JWT signatures. It only exchanges/refreshes tokens.\n\nIf `refreshToken` is omitted, the plugin will attempt to use the stored refresh token (if available).",
        "complexTypes": [
          "OAuth2LoginResponse",
          "RefreshTokenOptions"
        ],
        "slug": "refreshtoken"
      },
      {
        "name": "handleRedirectCallback",
        "signature": "() => Promise<LoginResult | null>",
        "parameters": [],
        "returns": "Promise<LoginResult | null>",
        "tags": [],
        "docs": "Web-only: handle the OAuth redirect callback and return the parsed result.\n\nNotes:\n- This is only meaningful on Web. iOS/Android implementations will reject.\n- Intended for redirect-based flows (e.g. `oauth2` with `flow: 'redirect'`) where the page navigates away.\n- LinkedIn convenience logins (`provider: 'linkedin'`, `flow: 'redirect'`) return `provider: 'linkedin'`.\n  The same app used as `oauth2` with `providerId: 'linkedin'` keeps `provider: 'oauth2'`.",
        "complexTypes": [
          "LoginResult"
        ],
        "slug": "handleredirectcallback"
      },
      {
        "name": "decodeIdToken",
        "signature": "(options: { idToken?: string; token?: string; }) => Promise<{ claims: Record<string, any>; }>",
        "parameters": [
          {
            "name": "options",
            "docs": "",
            "type": "{ idToken?: string | undefined; token?: string | undefined; }"
          }
        ],
        "returns": "Promise<{ claims: Record<string, any>; }>",
        "tags": [],
        "docs": "Decode a JWT (typically an OIDC ID token) into its claims.\n\nNotes:\n- Accepts both `idToken` and `token` to match common naming (Capawesome uses `token`).\n- This does not validate the signature or issuer/audience. It only base64url-decodes the payload.\n\n**`email_verified` semantics by provider (for account linking):**\n- **Google** — ID token includes `email_verified` (boolean). When `true`, Google attests\n  the user controls that email. Verify the JWT on your backend before trusting it.\n- **Apple** — ID token includes `email_verified` (boolean). When `true`, Apple attests\n  the user controls that email (including private relay). Verify the JWT on your backend.\n- **Meta (Facebook)** — Limited Login OIDC tokens may include `email` but **do not**\n  include `email_verified`. The presence of `email` is not the same guarantee as\n  `email_verified: true` from Google or Apple. Do not link accounts by email across\n  providers using Meta claims alone; perform your own email verification if needed.",
        "complexTypes": [
          "Record"
        ],
        "slug": "decodeidtoken"
      },
      {
        "name": "getAccessTokenExpirationDate",
        "signature": "(options: { accessTokenExpirationDate: number; }) => Promise<{ date: string; }>",
        "parameters": [
          {
            "name": "options",
            "docs": "",
            "type": "{ accessTokenExpirationDate: number; }"
          }
        ],
        "returns": "Promise<{ date: string; }>",
        "tags": [],
        "docs": "Convert an access token expiration timestamp (milliseconds since epoch) to an ISO date string.\n\nThis is a pure helper (feature parity with Capawesome OAuth) and does not depend on provider state.",
        "complexTypes": [],
        "slug": "getaccesstokenexpirationdate"
      },
      {
        "name": "isAccessTokenAvailable",
        "signature": "(options: { accessToken: string | null; }) => Promise<{ isAvailable: boolean; }>",
        "parameters": [
          {
            "name": "options",
            "docs": "",
            "type": "{ accessToken: string | null; }"
          }
        ],
        "returns": "Promise<{ isAvailable: boolean; }>",
        "tags": [],
        "docs": "Check if an access token is available (non-empty).\n\nThis is a pure helper (feature parity with Capawesome OAuth) and does not depend on provider state.",
        "complexTypes": [],
        "slug": "isaccesstokenavailable"
      },
      {
        "name": "isAccessTokenExpired",
        "signature": "(options: { accessTokenExpirationDate: number; }) => Promise<{ isExpired: boolean; }>",
        "parameters": [
          {
            "name": "options",
            "docs": "",
            "type": "{ accessTokenExpirationDate: number; }"
          }
        ],
        "returns": "Promise<{ isExpired: boolean; }>",
        "tags": [],
        "docs": "Check if an access token is expired.\n\nThis is a pure helper (feature parity with Capawesome OAuth) and does not depend on provider state.",
        "complexTypes": [],
        "slug": "isaccesstokenexpired"
      },
      {
        "name": "isRefreshTokenAvailable",
        "signature": "(options: { refreshToken: string | null; }) => Promise<{ isAvailable: boolean; }>",
        "parameters": [
          {
            "name": "options",
            "docs": "",
            "type": "{ refreshToken: string | null; }"
          }
        ],
        "returns": "Promise<{ isAvailable: boolean; }>",
        "tags": [],
        "docs": "Check if a refresh token is available (non-empty).\n\nThis is a pure helper (feature parity with Capawesome OAuth) and does not depend on provider state.",
        "complexTypes": [],
        "slug": "isrefreshtokenavailable"
      },
      {
        "name": "providerSpecificCall",
        "signature": "<T extends ProviderSpecificCall>(options: { call: T; options: ProviderSpecificCallOptionsMap[T]; }) => Promise<ProviderSpecificCallResponseMap[T]>",
        "parameters": [
          {
            "name": "options",
            "docs": "",
            "type": "{ call: T; options: ProviderSpecificCallOptionsMap[T]; }"
          }
        ],
        "returns": "Promise<ProviderSpecificCallResponseMap[T]>",
        "tags": [
          {
            "name": "description",
            "text": "Execute a provider-specific functionality"
          }
        ],
        "docs": "Execute provider-specific calls",
        "complexTypes": [
          "ProviderSpecificCallResponseMap",
          "T",
          "ProviderSpecificCall",
          "ProviderSpecificCallOptionsMap"
        ],
        "slug": "providerspecificcall"
      },
      {
        "name": "getPluginVersion",
        "signature": "() => Promise<{ version: string; }>",
        "parameters": [],
        "returns": "Promise<{ version: string; }>",
        "tags": [
          {
            "name": "returns",
            "text": "an Promise with version for this device"
          },
          {
            "name": "throws",
            "text": "An error if the something went wrong"
          }
        ],
        "docs": "Get the native Capacitor plugin version",
        "complexTypes": [],
        "slug": "getpluginversion"
      },
      {
        "name": "openSecureWindow",
        "signature": "(options: OpenSecureWindowOptions) => Promise<OpenSecureWindowResponse>",
        "parameters": [
          {
            "name": "options",
            "docs": "- the options for the openSecureWindow call",
            "type": "OpenSecureWindowOptions"
          }
        ],
        "returns": "Promise<OpenSecureWindowResponse>",
        "tags": [
          {
            "name": "param",
            "text": "options - the options for the openSecureWindow call"
          }
        ],
        "docs": "Opens a secured window for OAuth2 authentication.\nFor web, you should have the code in the redirected page to use a broadcast channel to send the redirected url to the app\nSomething like:\n```html\n<html>\n<head></head>\n<body>\n<script>\n  const searchParams = new URLSearchParams(location.search)\n  if (searchParams.has(\"code\")) {\n    new BroadcastChannel(\"my-channel-name\").postMessage(location.href);\n    window.close();\n  }\n</script>\n</body>\n</html>\n```\nFor mobile, you should have a redirect uri that opens the app, something like: `myapp://oauth_callback/`\nAnd make sure to register it in the app's info.plist:\n```xml\n<key>CFBundleURLTypes</key>\n<array>\n   <dict>\n      <key>CFBundleURLSchemes</key>\n      <array>\n         <string>myapp</string>\n      </array>\n   </dict>\n</array>\n```\nAnd in the AndroidManifest.xml file:\n```xml\n<activity>\n   <intent-filter>\n      <action android:name=\"android.intent.action.VIEW\" />\n      <category android:name=\"android.intent.category.DEFAULT\" />\n      <category android:name=\"android.intent.category.BROWSABLE\" />\n      <data android:host=\"oauth_callback\" android:scheme=\"myapp\" />\n   </intent-filter>\n</activity>\n```",
        "complexTypes": [
          "OpenSecureWindowResponse",
          "OpenSecureWindowOptions"
        ],
        "slug": "opensecurewindow"
      }
    ],
    "properties": []
  },
  "interfaces": [
    {
      "name": "InitializeOptions",
      "slug": "initializeoptions",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "oauth2",
          "tags": [
            {
              "text": "{\n  github: { appId: '...', authorizationBaseUrl: 'https://github.com/login/oauth/authorize', ... },\n  azure: { appId: '...', authorizationBaseUrl: 'https://login.microsoftonline.com/.../oauth2/v2.0/authorize', ... }\n}",
              "name": "example"
            }
          ],
          "docs": "OAuth2 provider configurations.\nSupports multiple providers by using a Record with provider IDs as keys.",
          "complexTypes": [
            "Record",
            "OAuth2ProviderConfig"
          ],
          "type": "Record<string, OAuth2ProviderConfig>"
        },
        {
          "name": "telegram",
          "tags": [],
          "docs": "Telegram Login Widget configuration.\nUses Telegram's OAuth widget (`oauth.telegram.org`), not standard OAuth2.",
          "complexTypes": [],
          "type": "{ botId: string; redirectUrl?: string | undefined; origin?: string | undefined; requestAccess?: 'read' | 'write' | undefined; languageCode?: string | undefined; } | undefined"
        },
        {
          "name": "linkedin",
          "tags": [],
          "docs": "LinkedIn configuration.\nConvenience wrapper that maps to the OAuth2 provider using LinkedIn defaults.",
          "complexTypes": [
            "LinkedInProviderConfig"
          ],
          "type": "LinkedInProviderConfig"
        },
        {
          "name": "tiktok",
          "tags": [],
          "docs": "TikTok Login Kit configuration.\nConvenience wrapper that maps to the OAuth2 provider using TikTok defaults (`client_key`).",
          "complexTypes": [
            "TikTokProviderConfig"
          ],
          "type": "TikTokProviderConfig"
        },
        {
          "name": "twitter",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "{ clientId: string; redirectUrl: string; defaultScopes?: string[] | undefined; forceLogin?: boolean | undefined; audience?: string | undefined; } | undefined"
        },
        {
          "name": "facebook",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "{ appId: string; clientToken?: string | undefined; locale?: string | undefined; } | undefined"
        },
        {
          "name": "google",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "{ iOSClientId?: string | undefined; iOSServerClientId?: string | undefined; webClientId?: string | undefined; mode?: 'online' | 'offline' | undefined; hostedDomain?: string | undefined; redirectUrl?: string | undefined; } | undefined"
        },
        {
          "name": "apple",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "{ clientId?: string | undefined; redirectUrl?: string | undefined; useProperTokenExchange?: boolean | undefined; useBroadcastChannel?: boolean | undefined; } | undefined"
        }
      ]
    },
    {
      "name": "OAuth2ProviderConfig",
      "slug": "oauth2providerconfig",
      "docs": "Configuration for a single OAuth2 provider instance",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "appId",
          "tags": [
            {
              "text": "'your-client-id'",
              "name": "example"
            }
          ],
          "docs": "The OAuth 2.0 client identifier (App ID / Client ID).\n\nNote: this configuration object is only used by the plugin's built-in `oauth2` provider\n(i.e. `SocialLogin.initialize({ oauth2: { ... } })`). It does not affect Google/Apple/Facebook/Twitter.",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "clientId",
          "tags": [
            {
              "text": "'your-client-id'",
              "name": "example"
            }
          ],
          "docs": "Alias for `appId` to match common OAuth/OIDC naming (`clientId`).\nIf both are provided, `appId` takes precedence.",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "issuerUrl",
          "tags": [
            {
              "text": "'https://accounts.example.com'",
              "name": "example"
            }
          ],
          "docs": "OpenID Connect issuer URL (enables discovery via `/.well-known/openid-configuration`).\nWhen set, you may omit explicit endpoints like `authorizationBaseUrl` and `accessTokenEndpoint`.\n\nNotes:\n- Explicit endpoints (authorization/token/logout) take precedence over discovered values.\n- Discovery is supported for `oauth2` on Web, iOS, and Android.",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "authorizationBaseUrl",
          "tags": [
            {
              "text": "'https://accounts.example.com/oauth2/authorize'",
              "name": "example"
            }
          ],
          "docs": "The base URL of the authorization endpoint",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "authorizationEndpoint",
          "tags": [
            {
              "text": "'https://accounts.example.com/oauth2/authorize'",
              "name": "example"
            }
          ],
          "docs": "Alias for `authorizationBaseUrl` (to match common OAuth/OIDC naming).",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "clientSecret",
          "tags": [],
          "docs": "OAuth 2.0 client secret for token requests (e.g., when exchanging the code).\nWhen provided, this value is sent using `clientSecretParamName` (default `client_secret`).",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "clientIdParamName",
          "tags": [
            {
              "text": "'client_id'",
              "name": "default"
            }
          ],
          "docs": "Override the client identifier parameter name used for authorization and token requests.\nSome providers (e.g. TikTok) expect `client_key` instead of the default `client_id`.",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "clientSecretParamName",
          "tags": [
            {
              "text": "'client_secret'",
              "name": "default"
            }
          ],
          "docs": "Override the client secret parameter name used for token requests.\nUseful for providers that expect a different parameter name.",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "accessTokenEndpoint",
          "tags": [
            {
              "text": "'https://accounts.example.com/oauth2/token'",
              "name": "example"
            }
          ],
          "docs": "The URL to exchange the authorization code for tokens\nRequired for authorization code flow",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "tokenEndpoint",
          "tags": [
            {
              "text": "'https://accounts.example.com/oauth2/token'",
              "name": "example"
            }
          ],
          "docs": "Alias for `accessTokenEndpoint` (to match common OAuth/OIDC naming).",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "redirectUrl",
          "tags": [
            {
              "text": "'myapp://oauth/callback'",
              "name": "example"
            }
          ],
          "docs": "Redirect URL that receives the OAuth callback",
          "complexTypes": [],
          "type": "string"
        },
        {
          "name": "resourceUrl",
          "tags": [
            {
              "text": "'https://api.example.com/userinfo'",
              "name": "example"
            }
          ],
          "docs": "Optional URL to fetch user profile/resource data after authentication\nThe access token will be sent as Bearer token in the Authorization header",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "responseType",
          "tags": [
            {
              "text": "'code'",
              "name": "default"
            }
          ],
          "docs": "The OAuth response type\n- 'code': Authorization Code flow (recommended, requires accessTokenEndpoint)\n- 'token': Implicit flow (less secure, tokens returned directly)",
          "complexTypes": [],
          "type": "'code' | 'token' | undefined"
        },
        {
          "name": "pkceEnabled",
          "tags": [
            {
              "text": "true",
              "name": "default"
            }
          ],
          "docs": "Enable PKCE (Proof Key for Code Exchange)\nStrongly recommended for public clients (mobile/web apps)",
          "complexTypes": [],
          "type": "boolean | undefined"
        },
        {
          "name": "scope",
          "tags": [
            {
              "text": "'openid profile email'",
              "name": "example"
            },
            {
              "text": "['openid','profile','email']",
              "name": "example"
            }
          ],
          "docs": "Default scopes to request during authorization",
          "complexTypes": [],
          "type": "string | string[] | undefined"
        },
        {
          "name": "scopes",
          "tags": [],
          "docs": "Alias for `scope` using common naming (`scopes`).\nIf both are provided, `scope` takes precedence.",
          "complexTypes": [],
          "type": "string[] | undefined"
        },
        {
          "name": "additionalParameters",
          "tags": [
            {
              "text": "{ prompt: 'consent', login_hint: 'user@example.com' }",
              "name": "example"
            }
          ],
          "docs": "Additional parameters to include in the authorization request",
          "complexTypes": [
            "Record"
          ],
          "type": "Record<string, string>"
        },
        {
          "name": "loginHint",
          "tags": [],
          "docs": "Convenience option for OIDC `login_hint`.\nEquivalent to passing `additionalParameters.login_hint`.",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "prompt",
          "tags": [],
          "docs": "Convenience option for OAuth/OIDC `prompt`.\nEquivalent to passing `additionalParameters.prompt`.",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "additionalTokenParameters",
          "tags": [],
          "docs": "Additional parameters to include in token requests (code exchange / refresh).\nUseful for providers that require non-standard parameters.",
          "complexTypes": [
            "Record"
          ],
          "type": "Record<string, string>"
        },
        {
          "name": "additionalResourceHeaders",
          "tags": [
            {
              "text": "{ 'X-Custom-Header': 'value' }",
              "name": "example"
            }
          ],
          "docs": "Additional headers to include when fetching the resource URL",
          "complexTypes": [
            "Record"
          ],
          "type": "Record<string, string>"
        },
        {
          "name": "logoutUrl",
          "tags": [
            {
              "text": "'https://accounts.example.com/logout'",
              "name": "example"
            }
          ],
          "docs": "Custom logout URL for ending the session",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "endSessionEndpoint",
          "tags": [
            {
              "text": "'https://accounts.example.com/logout'",
              "name": "example"
            }
          ],
          "docs": "Alias for `logoutUrl` to match OIDC naming (`endSessionEndpoint`).",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "postLogoutRedirectUrl",
          "tags": [
            {
              "text": "'myapp://logout/callback'",
              "name": "example"
            }
          ],
          "docs": "OIDC post logout redirect URL (sent as `post_logout_redirect_uri` when building the end-session URL).",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "additionalLogoutParameters",
          "tags": [],
          "docs": "Additional parameters to include in logout / end-session URL.",
          "complexTypes": [
            "Record"
          ],
          "type": "Record<string, string>"
        },
        {
          "name": "iosPrefersEphemeralWebBrowserSession",
          "tags": [],
          "docs": "iOS-only: Whether to prefer an ephemeral browser session for ASWebAuthenticationSession.\nDefaults to true to match existing behavior in this plugin.",
          "complexTypes": [],
          "type": "boolean | undefined"
        },
        {
          "name": "iosPrefersEphemeralSession",
          "tags": [],
          "docs": "Alias for `iosPrefersEphemeralWebBrowserSession` (to match Capawesome OAuth naming).",
          "complexTypes": [],
          "type": "boolean | undefined"
        },
        {
          "name": "androidUseCustomTabs",
          "tags": [
            {
              "text": "false",
              "name": "default"
            },
            {
              "text": "true",
              "name": "example"
            }
          ],
          "docs": "Android-only: Use Chrome Custom Tabs (system browser) instead of an embedded WebView\nfor the authorization request.\n\nCustom Tabs follow RFC 8252 (OAuth 2.0 for Native Apps) and fix issues with brokered\nIdPs (Microsoft Entra Conditional Access / Authenticator, passkeys/WebAuthn, Google\n`disallowed_useragent`, SSO cookie sharing, password managers).\n\nRequires a custom-scheme or App Link `redirectUrl` with a matching intent filter in\nyour app's `AndroidManifest.xml` (same setup as `openSecureWindow()` / Apple on Android).\n\nDefaults to `false` to preserve the historical WebView flow.",
          "complexTypes": [],
          "type": "boolean | undefined"
        },
        {
          "name": "logsEnabled",
          "tags": [
            {
              "text": "false",
              "name": "default"
            }
          ],
          "docs": "Enable debug logging",
          "complexTypes": [],
          "type": "boolean | undefined"
        }
      ]
    },
    {
      "name": "LinkedInProviderConfig",
      "slug": "linkedinproviderconfig",
      "docs": "LinkedIn provider configuration (convenience wrapper around the generic OAuth2 provider).\n\nUses the OAuth2 engine with LinkedIn defaults:\n- Authorization URL: https://www.linkedin.com/oauth/v2/authorization\n- Token URL: https://www.linkedin.com/oauth/v2/accessToken\n- Resource URL: https://api.linkedin.com/v2/userinfo\n- Default scopes: `openid profile email`",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "clientId",
          "tags": [],
          "docs": "LinkedIn Client ID from the LinkedIn Developer Portal.",
          "complexTypes": [],
          "type": "string"
        },
        {
          "name": "redirectUrl",
          "tags": [
            {
              "text": "'https://your-app.example/auth/linkedin'",
              "name": "example"
            }
          ],
          "docs": "Redirect URL that receives the OAuth callback.\nMust match a redirect URL configured in the LinkedIn Developer Portal.",
          "complexTypes": [],
          "type": "string"
        },
        {
          "name": "clientSecret",
          "tags": [],
          "docs": "LinkedIn Client Secret.\n\nPrefer exchanging the authorization code on a backend when possible.\nNeeded for confidential clients that do not use PKCE-only token exchange.",
          "complexTypes": [],
          "type": "string | undefined"
        }
      ]
    },
    {
      "name": "TikTokProviderConfig",
      "slug": "tiktokproviderconfig",
      "docs": "TikTok Login Kit configuration (convenience wrapper around the generic OAuth2 provider).\n\nUses TikTok OAuth 2.0 endpoints and `client_key` instead of `client_id`.",
      "tags": [
        {
          "text": "https ://developers.tiktok.com/doc/login-kit-web",
          "name": "see"
        }
      ],
      "methods": [],
      "properties": [
        {
          "name": "clientKey",
          "tags": [
            {
              "text": "'aw3y*****'",
              "name": "example"
            }
          ],
          "docs": "TikTok client key (also known as app key).",
          "complexTypes": [],
          "type": "string"
        },
        {
          "name": "redirectUrl",
          "tags": [
            {
              "text": "'myapp://auth/tiktok'",
              "name": "example"
            }
          ],
          "docs": "Redirect URL registered in your TikTok developer app.",
          "complexTypes": [],
          "type": "string"
        },
        {
          "name": "clientSecret",
          "tags": [],
          "docs": "TikTok client secret. Optional.\nWhen set, the plugin includes it on token and refresh requests.\nOn web this value is stored with the OAuth2 config.\nLogin always exchanges the authorization code in the plugin; the raw code is not returned to the app.",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "scopes",
          "tags": [
            {
              "text": "['user.info.basic']",
              "name": "default"
            },
            {
              "text": "['user.info.basic','video.list']",
              "name": "example"
            }
          ],
          "docs": "Scopes to request during login. Arrays are sent as a comma-separated string (TikTok Login Kit).",
          "complexTypes": [],
          "type": "string[] | undefined"
        },
        {
          "name": "scope",
          "tags": [],
          "docs": "Alias for `scopes`.",
          "complexTypes": [],
          "type": "string | string[] | undefined"
        },
        {
          "name": "pkceEnabled",
          "tags": [
            {
              "text": "true",
              "name": "default"
            }
          ],
          "docs": "Toggle PKCE usage during the authorization code flow.",
          "complexTypes": [],
          "type": "boolean | undefined"
        },
        {
          "name": "logsEnabled",
          "tags": [
            {
              "text": "false",
              "name": "default"
            }
          ],
          "docs": "Enable verbose debug logging for the TikTok OAuth2 flow.",
          "complexTypes": [],
          "type": "boolean | undefined"
        }
      ]
    },
    {
      "name": "FacebookLoginResponse",
      "slug": "facebookloginresponse",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "accessToken",
          "tags": [],
          "docs": "",
          "complexTypes": [
            "AccessToken"
          ],
          "type": "AccessToken | null"
        },
        {
          "name": "isLimitedLogin",
          "tags": [
            {
              "text": "8.4.0",
              "name": "since"
            }
          ],
          "docs": "Whether Facebook Limited Login was used for this session.\nWhen `true`, `accessToken` is not valid for Graph API calls (Facebook error 190).\nValidate `idToken` on your backend instead, or call `facebook#requestTracking` and log in again after ATT is granted.",
          "complexTypes": [],
          "type": "boolean | undefined"
        },
        {
          "name": "idToken",
          "tags": [
            {
              "text": "https ://developers.facebook.com/docs/facebook-login/limited-login/token/validating/",
              "name": "see"
            }
          ],
          "docs": "OpenID Connect ID token (JWT) from Meta Limited Login (iOS native, when available).\n\n**Not equivalent to Google/Apple `email_verified`:** Meta's OIDC token may include\nan `email` claim (when the `email` permission is granted) but does **not** publish an\n`email_verified` claim like Google or Apple. Meta documents the value as the user's\nprimary account email, not as an OIDC-verified email assertion.\n\nOn Android and Web this is usually `null` (Graph API access token flow instead).\nValidate signature, `iss` (`https://www.facebook.com` or `https://limited.facebook.com`),\n`aud`, `exp`, and nonce on your backend. Do not infer `email_verified: true` from the\npresence of `email` alone when linking accounts across providers.",
          "complexTypes": [],
          "type": "string | null"
        },
        {
          "name": "profile",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "{ userID: string; email: string | null; friendIDs: string[]; birthday: string | null; ageRange: { min?: number | undefined; max?: number | undefined; } | null; gender: string | null; location: { id: string; name: string; } | null; hometown: { id: string; name: string; } | null; profileURL: string | null; name: string | null; imageURL: string | null; }"
        }
      ]
    },
    {
      "name": "AccessToken",
      "slug": "accesstoken",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "applicationId",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "declinedPermissions",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "string[] | undefined"
        },
        {
          "name": "expires",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "isExpired",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "boolean | undefined"
        },
        {
          "name": "lastRefresh",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "permissions",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "string[] | undefined"
        },
        {
          "name": "token",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "string"
        },
        {
          "name": "tokenType",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "refreshToken",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "userId",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "string | undefined"
        }
      ]
    },
    {
      "name": "GoogleLoginResponseOnline",
      "slug": "googleloginresponseonline",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "accessToken",
          "tags": [],
          "docs": "OAuth access token for Google APIs.\n\nMay be `null` on Android when Credential Manager authentication succeeds but\nAuthorizationClient does not return an access token (authentication-only /\nID-token login with default OIDC scopes). Use `idToken` for user authentication;\nrequest additional Google API scopes when an access token is required.",
          "complexTypes": [
            "AccessToken"
          ],
          "type": "AccessToken | null"
        },
        {
          "name": "idToken",
          "tags": [
            {
              "text": "https ://developers.google.com/identity/gsi/web/guides/verify-google-id-token",
              "name": "see"
            }
          ],
          "docs": "OpenID Connect ID token (JWT).\n\nIncludes an `email_verified` claim when the `email` scope is granted. Use\n`SocialLogin.decodeIdToken({ idToken })` to read claims on the client, but\nalways verify the token signature, `iss`, `aud`, and `exp` on your backend\nbefore trusting `email_verified` for account linking.",
          "complexTypes": [],
          "type": "string | null"
        },
        {
          "name": "profile",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "{ email: string | null; familyName: string | null; givenName: string | null; id: string | null; name: string | null; imageUrl: string | null; }"
        },
        {
          "name": "responseType",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "'online'"
        }
      ]
    },
    {
      "name": "GoogleLoginResponseOffline",
      "slug": "googleloginresponseoffline",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "serverAuthCode",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "string"
        },
        {
          "name": "responseType",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "'offline'"
        }
      ]
    },
    {
      "name": "AppleProviderResponse",
      "slug": "appleproviderresponse",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "accessToken",
          "tags": [
            {
              "text": "Content depends on `useProperTokenExchange` setting:\n- When `useProperTokenExchange: true`: Real access token from Apple (~1 hour validity)\n- When `useProperTokenExchange: false`: Contains authorization code as token (legacy mode)\nUse `idToken` for user authentication, `accessToken` for API calls when properly exchanged.",
              "name": "description"
            }
          ],
          "docs": "Access token from Apple",
          "complexTypes": [
            "AccessToken"
          ],
          "type": "AccessToken | null"
        },
        {
          "name": "idToken",
          "tags": [
            {
              "text": "https ://developer.apple.com/documentation/signinwithapple/authenticating-users-with-sign-in-with-apple",
              "name": "see"
            }
          ],
          "docs": "Identity token (JWT) from Apple.\n\nIncludes standard OIDC claims such as `sub`, `email` (when granted), and\n`email_verified` (boolean). Apple sets `email_verified` to `true` when it\nattests the user controls the email (including Hide My Email relay addresses).\n\nUse `SocialLogin.decodeIdToken({ idToken })` to read claims on the client, but\nverify the token signature, `iss`, `aud`, and `exp` on your backend before\ntrusting `email_verified` for account linking.",
          "complexTypes": [],
          "type": "string | null"
        },
        {
          "name": "profile",
          "tags": [
            {
              "text": "Basic user profile data extracted from the identity token and Apple response:\n- `user`: Apple's user identifier (sub claim from idToken)\n- `email`: User's email address (if permission granted)\n- `givenName`: User's first name (if permission granted)\n- `familyName`: User's last name (if permission granted)",
              "name": "description"
            }
          ],
          "docs": "User profile information",
          "complexTypes": [],
          "type": "{ user: string; email: string | null; givenName: string | null; familyName: string | null; }"
        },
        {
          "name": "authorizationCode",
          "tags": [
            {
              "text": "Only present when `useProperTokenExchange` is `true`. This code should be exchanged\nfor proper access tokens on your backend using Apple's token endpoint. Use this for secure\nserver-side token validation and to obtain refresh tokens.",
              "name": "description"
            },
            {
              "text": "https ://developer.apple.com/documentation/sign_in_with_apple/tokenresponse",
              "name": "see"
            }
          ],
          "docs": "Authorization code for proper token exchange (when useProperTokenExchange is enabled)",
          "complexTypes": [],
          "type": "string | undefined"
        }
      ]
    },
    {
      "name": "TwitterLoginResponse",
      "slug": "twitterloginresponse",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "accessToken",
          "tags": [],
          "docs": "",
          "complexTypes": [
            "AccessToken"
          ],
          "type": "AccessToken | null"
        },
        {
          "name": "refreshToken",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "string | null | undefined"
        },
        {
          "name": "scope",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "string[]"
        },
        {
          "name": "tokenType",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "'bearer'"
        },
        {
          "name": "expiresIn",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "number | null | undefined"
        },
        {
          "name": "profile",
          "tags": [],
          "docs": "",
          "complexTypes": [
            "TwitterProfile"
          ],
          "type": "TwitterProfile"
        }
      ]
    },
    {
      "name": "TwitterProfile",
      "slug": "twitterprofile",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "id",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "string"
        },
        {
          "name": "username",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "string"
        },
        {
          "name": "name",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "string | null"
        },
        {
          "name": "profileImageUrl",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "string | null"
        },
        {
          "name": "verified",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "boolean"
        },
        {
          "name": "email",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "string | null | undefined"
        }
      ]
    },
    {
      "name": "TelegramLoginResponse",
      "slug": "telegramloginresponse",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "profile",
          "tags": [],
          "docs": "",
          "complexTypes": [
            "TelegramProfile"
          ],
          "type": "TelegramProfile"
        },
        {
          "name": "authDate",
          "tags": [],
          "docs": "Unix timestamp (seconds) when the user authorized the login.",
          "complexTypes": [],
          "type": "number"
        },
        {
          "name": "hash",
          "tags": [],
          "docs": "Telegram-provided hash for server-side verification.",
          "complexTypes": [],
          "type": "string"
        },
        {
          "name": "requestAccess",
          "tags": [],
          "docs": "Requested access level that was used for this login.",
          "complexTypes": [],
          "type": "'read' | 'write'"
        }
      ]
    },
    {
      "name": "TelegramProfile",
      "slug": "telegramprofile",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "id",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "string"
        },
        {
          "name": "firstName",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "string"
        },
        {
          "name": "lastName",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "string | null | undefined"
        },
        {
          "name": "username",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "string | null | undefined"
        },
        {
          "name": "photoUrl",
          "tags": [],
          "docs": "",
          "complexTypes": [],
          "type": "string | null | undefined"
        }
      ]
    },
    {
      "name": "OAuth2LoginResponse",
      "slug": "oauth2loginresponse",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "providerId",
          "tags": [],
          "docs": "The provider ID that was used for this login",
          "complexTypes": [],
          "type": "string"
        },
        {
          "name": "accessToken",
          "tags": [],
          "docs": "The access token received from the OAuth provider",
          "complexTypes": [
            "AccessToken"
          ],
          "type": "AccessToken | null"
        },
        {
          "name": "idToken",
          "tags": [],
          "docs": "The ID token (JWT) if provided by the OAuth server (e.g., OpenID Connect)",
          "complexTypes": [],
          "type": "string | null"
        },
        {
          "name": "refreshToken",
          "tags": [],
          "docs": "The refresh token if provided (requires appropriate scope like offline_access)",
          "complexTypes": [],
          "type": "string | null"
        },
        {
          "name": "resourceData",
          "tags": [],
          "docs": "Resource data fetched from resourceUrl if configured\nContains the raw JSON response from the resource endpoint",
          "complexTypes": [
            "Record"
          ],
          "type": "Record<string, unknown> | null"
        },
        {
          "name": "scope",
          "tags": [],
          "docs": "The scopes that were granted",
          "complexTypes": [],
          "type": "string[]"
        },
        {
          "name": "tokenType",
          "tags": [],
          "docs": "Token type (usually 'bearer')",
          "complexTypes": [],
          "type": "string"
        },
        {
          "name": "expiresIn",
          "tags": [],
          "docs": "Token expiration time in seconds",
          "complexTypes": [],
          "type": "number | null"
        }
      ]
    },
    {
      "name": "FacebookLoginOptions",
      "slug": "facebookloginoptions",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "permissions",
          "tags": [
            {
              "text": "Select permissions to login with. Supports both consumer and business permissions.\n\n**Consumer Permissions:**\n- `email` - User's email address\n- `public_profile` - User's public profile info\n- `user_friends` - List of friends who also use your app\n\n**Business Permissions** (require business app configuration and may need App Review):\n- `instagram_basic` - Instagram Basic Display API access\n- `instagram_manage_insights` - Instagram Insights data\n- `instagram_manage_comments` - Manage Instagram comments\n- `instagram_content_publish` - Publish to Instagram\n- `pages_show_list` - List of Pages managed by user\n- `pages_read_engagement` - Read Page engagement metrics\n- `pages_manage_posts` - Manage Page posts\n- `pages_messaging` - Page messaging features\n- `business_management` - Manage business assets\n- `catalog_management` - Manage product catalogs\n- `ads_management` - Manage advertising accounts",
              "name": "description"
            },
            {
              "text": "['email', 'public_profile'] // Consumer permissions",
              "name": "example"
            },
            {
              "text": "['email', 'instagram_basic', 'pages_show_list'] // Business permissions",
              "name": "example"
            },
            {
              "text": "https ://developers.facebook.com/docs/permissions/reference",
              "name": "see"
            },
            {
              "text": "docs /facebook_business_login.md for complete business integration guide",
              "name": "see"
            }
          ],
          "docs": "Permissions",
          "complexTypes": [],
          "type": "string[]"
        },
        {
          "name": "limitedLogin",
          "tags": [
            {
              "text": "use limited login for Facebook iOS only. Important: This is iOS-only and doesn't affect Android.\nEven if set to false, Facebook will automatically force it to true if App Tracking Transparency (ATT) permission is not granted.\nDevelopers should always be prepared to handle both limited and full login scenarios.",
              "name": "description"
            },
            {
              "text": "false",
              "name": "default"
            }
          ],
          "docs": "Is Limited Login",
          "complexTypes": [],
          "type": "boolean | undefined"
        },
        {
          "name": "nonce",
          "tags": [
            {
              "text": "A custom nonce to use for the login request",
              "name": "description"
            }
          ],
          "docs": "Nonce",
          "complexTypes": [],
          "type": "string | undefined"
        }
      ]
    },
    {
      "name": "GoogleLoginOptions",
      "slug": "googleloginoptions",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "scopes",
          "tags": [
            {
              "text": "[\"profile\", \"email\"]",
              "name": "example"
            },
            {
              "text": " [Google OAuth2 Scopes](https://developers.google.com/identity/protocols/oauth2/scopes)",
              "name": "see"
            }
          ],
          "docs": "Specifies the scopes required for accessing Google APIs\nThe default is defined in the configuration.",
          "complexTypes": [],
          "type": "string[] | undefined"
        },
        {
          "name": "nonce",
          "tags": [
            {
              "text": "nonce",
              "name": "description"
            }
          ],
          "docs": "Nonce",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "forceRefreshToken",
          "tags": [
            {
              "text": "force refresh token",
              "name": "description"
            },
            {
              "text": "false",
              "name": "default"
            },
            {
              "text": "On Android, the OS caches access tokens, and if a token is invalid (e.g., user revoked app access), the plugin might return an invalid accessToken. Using getAuthorizationCode() is recommended to ensure the token is valid.",
              "name": "note"
            }
          ],
          "docs": "Force refresh token (only for Android)",
          "complexTypes": [],
          "type": "boolean | undefined"
        },
        {
          "name": "forcePrompt",
          "tags": [
            {
              "text": "forces the account selection prompt to appear on iOS",
              "name": "description"
            },
            {
              "text": "false",
              "name": "default"
            }
          ],
          "docs": "Force account selection prompt (iOS)",
          "complexTypes": [],
          "type": "boolean | undefined"
        },
        {
          "name": "style",
          "tags": [
            {
              "text": "style",
              "name": "description"
            },
            {
              "text": "'standard'",
              "name": "default"
            }
          ],
          "docs": "Style",
          "complexTypes": [],
          "type": "'bottom' | 'standard' | undefined"
        },
        {
          "name": "filterByAuthorizedAccounts",
          "tags": [
            {
              "text": "Only show accounts that have previously been used to sign in to the app.\nThis option is only available for the 'bottom' style.\nNote: For Family Link supervised accounts, this should be set to false.",
              "name": "description"
            },
            {
              "text": "false",
              "name": "default"
            }
          ],
          "docs": "Filter by authorized accounts (Android only)",
          "complexTypes": [],
          "type": "boolean | undefined"
        },
        {
          "name": "autoSelectEnabled",
          "tags": [
            {
              "text": "Automatically select the account if only one Google account is available.\nThis option is only available for the 'bottom' style.",
              "name": "description"
            },
            {
              "text": "false",
              "name": "default"
            }
          ],
          "docs": "Auto select enabled (Android only)",
          "complexTypes": [],
          "type": "boolean | undefined"
        },
        {
          "name": "prompt",
          "tags": [
            {
              "text": "A space-delimited, case-sensitive list of prompts to present the user.\nIf you don't specify this parameter, the user will be prompted only the first time your project requests access.\n\n**Possible values:**\n- `none`: Don't display any authentication or consent screens. Must not be specified with other values.\n- `consent`: Prompt the user for consent.\n- `select_account`: Prompt the user to select an account.\n\n**Examples:**\n- `prompt: 'consent'` - Always show consent screen\n- `prompt: 'select_account'` - Always show account selection\n- `prompt: 'consent select_account'` - Show both consent and account selection\n\n**Note:** This parameter only affects web platform behavior. Mobile platforms use their own native prompts.",
              "name": "description"
            },
            {
              "text": "'consent'",
              "name": "example"
            },
            {
              "text": "'select_account'",
              "name": "example"
            },
            {
              "text": "'consent select_account'",
              "name": "example"
            },
            {
              "text": " [Google OAuth2 Prompt Parameter](https://developers.google.com/identity/protocols/oauth2/openid-connect#prompt)",
              "name": "see"
            },
            {
              "text": "7.12.0",
              "name": "since"
            }
          ],
          "docs": "Prompt parameter for Google OAuth (Web only)",
          "complexTypes": [],
          "type": "'none' | 'consent' | 'select_account' | 'consent select_account' | 'select_account consent' | undefined"
        }
      ]
    },
    {
      "name": "AppleProviderOptions",
      "slug": "appleprovideroptions",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "scopes",
          "tags": [
            {
              "text": "An array of scopes to request during login",
              "name": "description"
            },
            {
              "text": "[\"name\", \"email\"]\ndefault: [\"name\", \"email\"]",
              "name": "example"
            }
          ],
          "docs": "Scopes",
          "complexTypes": [],
          "type": "string[] | undefined"
        },
        {
          "name": "nonce",
          "tags": [
            {
              "text": "nonce",
              "name": "description"
            }
          ],
          "docs": "Nonce",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "state",
          "tags": [
            {
              "text": "state",
              "name": "description"
            }
          ],
          "docs": "State",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "useBroadcastChannel",
          "tags": [
            {
              "text": "When enabled, uses Broadcast Channel API for communication instead of URL redirects.\nOnly applicable on platforms that support Broadcast Channel (Android).",
              "name": "description"
            },
            {
              "text": "false",
              "name": "default"
            }
          ],
          "docs": "Use Broadcast Channel for authentication flow",
          "complexTypes": [],
          "type": "boolean | undefined"
        }
      ]
    },
    {
      "name": "TwitterLoginOptions",
      "slug": "twitterloginoptions",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "scopes",
          "tags": [
            {
              "text": "['tweet.read','users.read','offline.access']",
              "name": "example"
            }
          ],
          "docs": "Additional scopes to request during login.\nIf omitted the plugin falls back to the default scopes configured during initialization.",
          "complexTypes": [],
          "type": "string[] | undefined"
        },
        {
          "name": "state",
          "tags": [],
          "docs": "Provide a custom OAuth state value.\nWhen not provided the plugin generates a cryptographically random value.",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "codeVerifier",
          "tags": [],
          "docs": "Provide a pre-computed PKCE code verifier (mostly used for testing).\nWhen omitted the plugin generates a secure verifier automatically.",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "redirectUrl",
          "tags": [],
          "docs": "Override the redirect URI for a single login call.\nUseful when the same app supports multiple callback URLs per platform.",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "forceLogin",
          "tags": [],
          "docs": "Force the consent screen on every attempt, maps to `force_login=true`.",
          "complexTypes": [],
          "type": "boolean | undefined"
        }
      ]
    },
    {
      "name": "TelegramLoginOptions",
      "slug": "telegramloginoptions",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "redirectUrl",
          "tags": [],
          "docs": "Override the redirect URL for this login attempt.\nDefaults to the redirect configured during initialize().\nRequired on iOS/Android when initialize() did not set `redirectUrl`.",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "state",
          "tags": [],
          "docs": "Optional state parameter for CSRF protection.\nIf omitted, a secure random value is generated automatically.",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "requestAccess",
          "tags": [
            {
              "text": "'write'",
              "name": "default"
            }
          ],
          "docs": "Override requested access level for this login.\nDefaults to the value configured during initialize().",
          "complexTypes": [],
          "type": "'read' | 'write' | undefined"
        }
      ]
    },
    {
      "name": "OAuth2LoginOptions",
      "slug": "oauth2loginoptions",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "providerId",
          "tags": [
            {
              "text": "'github', 'azure', 'keycloak'",
              "name": "example"
            }
          ],
          "docs": "The provider ID as configured in initialize()\nThis is required to identify which OAuth2 provider to use",
          "complexTypes": [],
          "type": "string"
        },
        {
          "name": "scope",
          "tags": [],
          "docs": "Override the scopes for this login request\nIf not provided, uses the scopes from initialization",
          "complexTypes": [],
          "type": "string | string[] | undefined"
        },
        {
          "name": "scopes",
          "tags": [],
          "docs": "Alias for `scope` using common naming (`scopes`).\nIf both are provided, `scope` takes precedence.",
          "complexTypes": [],
          "type": "string[] | undefined"
        },
        {
          "name": "state",
          "tags": [],
          "docs": "Custom state parameter for CSRF protection\nIf not provided, a random value is generated",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "codeVerifier",
          "tags": [],
          "docs": "Override PKCE code verifier (for testing purposes)\nIf not provided, a secure random verifier is generated",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "redirectUrl",
          "tags": [],
          "docs": "Override redirect URL for this login request",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "additionalParameters",
          "tags": [],
          "docs": "Additional parameters to add to the authorization URL",
          "complexTypes": [
            "Record"
          ],
          "type": "Record<string, string>"
        },
        {
          "name": "loginHint",
          "tags": [],
          "docs": "Convenience option for OIDC `login_hint`.\nEquivalent to passing `additionalParameters.login_hint`.",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "prompt",
          "tags": [],
          "docs": "Convenience option for OAuth/OIDC `prompt`.\nEquivalent to passing `additionalParameters.prompt`.",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "flow",
          "tags": [
            {
              "text": "'popup'",
              "name": "default"
            }
          ],
          "docs": "Web-only (`oauth2` provider only): Use a full-page redirect instead of a popup window.\n\nWhen using `redirect`, the promise returned by `login()` will not resolve because the page navigates away.\nAfter the redirect lands back in your app, call `SocialLogin.handleRedirectCallback()` on that page to\nparse the result.",
          "complexTypes": [],
          "type": "'popup' | 'redirect' | undefined"
        }
      ]
    },
    {
      "name": "TikTokLoginOptions",
      "slug": "tiktokloginoptions",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "scopes",
          "tags": [
            {
              "text": "['user.info.basic']",
              "name": "example"
            }
          ],
          "docs": "Optional scopes to override the initialization scopes.",
          "complexTypes": [],
          "type": "string[] | undefined"
        },
        {
          "name": "scope",
          "tags": [],
          "docs": "Alias for `scopes`.",
          "complexTypes": [],
          "type": "string | string[] | undefined"
        },
        {
          "name": "state",
          "tags": [],
          "docs": "Custom state parameter for CSRF protection.",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "codeVerifier",
          "tags": [],
          "docs": "Custom PKCE code verifier (mostly for testing).",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "redirectUrl",
          "tags": [],
          "docs": "Override redirect URL for this login request.",
          "complexTypes": [],
          "type": "string | undefined"
        }
      ]
    },
    {
      "name": "isLoggedInOptions",
      "slug": "isloggedinoptions",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "provider",
          "tags": [
            {
              "text": "Provider for the isLoggedIn",
              "name": "description"
            }
          ],
          "docs": "Provider",
          "complexTypes": [],
          "type": "'apple' | 'google' | 'facebook' | 'twitter' | 'linkedin' | 'tiktok' | 'oauth2' | 'telegram'"
        },
        {
          "name": "providerId",
          "tags": [
            {
              "text": "The ID used when configuring the OAuth2 provider in initialize()",
              "name": "description"
            }
          ],
          "docs": "Provider ID for OAuth2 providers (required when provider is 'oauth2')",
          "complexTypes": [],
          "type": "string | undefined"
        }
      ]
    },
    {
      "name": "AuthorizationCode",
      "slug": "authorizationcode",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "jwt",
          "tags": [
            {
              "text": "A JSON web token",
              "name": "description"
            }
          ],
          "docs": "Jwt",
          "complexTypes": [],
          "type": "string | undefined"
        },
        {
          "name": "accessToken",
          "tags": [
            {
              "text": "An access token",
              "name": "description"
            }
          ],
          "docs": "Access Token",
          "complexTypes": [],
          "type": "string | undefined"
        }
      ]
    },
    {
      "name": "AuthorizationCodeOptions",
      "slug": "authorizationcodeoptions",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "provider",
          "tags": [
            {
              "text": "Provider for the authorization code",
              "name": "description"
            }
          ],
          "docs": "Provider",
          "complexTypes": [],
          "type": "'apple' | 'google' | 'facebook' | 'twitter' | 'linkedin' | 'tiktok' | 'oauth2'"
        },
        {
          "name": "providerId",
          "tags": [
            {
              "text": "The ID used when configuring the OAuth2 provider in initialize()",
              "name": "description"
            }
          ],
          "docs": "Provider ID for OAuth2 providers (required when provider is 'oauth2')",
          "complexTypes": [],
          "type": "string | undefined"
        }
      ]
    },
    {
      "name": "FacebookGetProfileResponse",
      "slug": "facebookgetprofileresponse",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "profile",
          "tags": [],
          "docs": "Facebook profile data",
          "complexTypes": [],
          "type": "{ [key: string]: any; id: string | null; name: string | null; email: string | null; first_name: string | null; last_name: string | null; picture?: { data: { height: number | null; is_silhouette: boolean | null; url: string | null; width: number | null; }; } | null | undefined; }"
        }
      ]
    },
    {
      "name": "FacebookRequestTrackingResponse",
      "slug": "facebookrequesttrackingresponse",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "status",
          "tags": [],
          "docs": "App tracking authorization status",
          "complexTypes": [],
          "type": "'authorized' | 'denied' | 'notDetermined' | 'restricted'"
        }
      ]
    },
    {
      "name": "GoogleCreateRestoreCredentialResponse",
      "slug": "googlecreaterestorecredentialresponse",
      "docs": "Response from `google#createRestoreCredential`.\n\nSend `responseJson` to your server to complete restore key registration (same as passkey creation).",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "responseJson",
          "tags": [],
          "docs": "Public key credential registration response JSON from Credential Manager.",
          "complexTypes": [],
          "type": "string"
        }
      ]
    },
    {
      "name": "GoogleGetRestoreCredentialResponse",
      "slug": "googlegetrestorecredentialresponse",
      "docs": "Response from `google#getRestoreCredential`.\n\nSend `responseJson` to your server to sign the user in (same server path as passkey authentication).",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "responseJson",
          "tags": [],
          "docs": "Restore credential authentication response JSON from Credential Manager.",
          "complexTypes": [],
          "type": "string"
        }
      ]
    },
    {
      "name": "GoogleClearRestoreCredentialResponse",
      "slug": "googleclearrestorecredentialresponse",
      "docs": "Response from `google#clearRestoreCredential`.",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "cleared",
          "tags": [],
          "docs": "Whether the restore credential clear request completed successfully.",
          "complexTypes": [],
          "type": "boolean"
        }
      ]
    },
    {
      "name": "FacebookGetProfileOptions",
      "slug": "facebookgetprofileoptions",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "fields",
          "tags": [
            {
              "text": "['id', 'name', 'email', 'picture']",
              "name": "default"
            },
            {
              "text": "[\"id\", \"name\", \"email\", \"picture\"]",
              "name": "example"
            }
          ],
          "docs": "Fields to retrieve from Facebook profile.",
          "complexTypes": [],
          "type": "string[] | undefined"
        }
      ]
    },
    {
      "name": "GoogleCreateRestoreCredentialOptions",
      "slug": "googlecreaterestorecredentialoptions",
      "docs": "Options for `providerSpecificCall` with `google#createRestoreCredential`.\n\nAndroid-only. Creates a Restore Credential (restore key) via Credential Manager after the user\nsigns in. Your backend must supply WebAuthn PublicKeyCredentialCreationOptionsJSON (the same\nFIDO2/passkey registration flow used for passkeys).",
      "tags": [
        {
          "text": "https ://developer.android.com/identity/sign-in/restore-credentials",
          "name": "see"
        },
        {
          "text": "8.5.0",
          "name": "since"
        }
      ],
      "methods": [],
      "properties": [
        {
          "name": "requestJson",
          "tags": [],
          "docs": "Credential creation options from your server in WebAuthn PublicKeyCredentialCreationOptionsJSON format.",
          "complexTypes": [],
          "type": "string"
        },
        {
          "name": "isCloudBackupEnabled",
          "tags": [
            {
              "text": "true",
              "name": "default"
            }
          ],
          "docs": "When `true` (default), the restore key is backed up to the cloud when the user has backup and\nend-to-end encryption (e.g. screen lock) enabled. If cloud backup creation fails with\n`E2eeUnavailableException` on Android, the plugin automatically retries with local-only storage.",
          "complexTypes": [],
          "type": "boolean | undefined"
        }
      ]
    },
    {
      "name": "GoogleGetRestoreCredentialOptions",
      "slug": "googlegetrestorecredentialoptions",
      "docs": "Options for `providerSpecificCall` with `google#getRestoreCredential`.\n\nAndroid-only. Retrieves a Restore Credential silently (e.g. on first launch on a new device or from\nBackupAgent `onRestoreFinished`). Your backend must supply WebAuthn authentication request JSON.",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "requestJson",
          "tags": [],
          "docs": "Credential request options from your server (WebAuthn authentication request JSON).",
          "complexTypes": [],
          "type": "string"
        }
      ]
    },
    {
      "name": "OpenSecureWindowResponse",
      "slug": "opensecurewindowresponse",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "redirectedUri",
          "tags": [],
          "docs": "The result of the openSecureWindow call",
          "complexTypes": [],
          "type": "string"
        }
      ]
    },
    {
      "name": "OpenSecureWindowOptions",
      "slug": "opensecurewindowoptions",
      "docs": "",
      "tags": [],
      "methods": [],
      "properties": [
        {
          "name": "authEndpoint",
          "tags": [],
          "docs": "The endpoint to open",
          "complexTypes": [],
          "type": "string"
        },
        {
          "name": "redirectUri",
          "tags": [],
          "docs": "The redirect URI to use for the openSecureWindow call.\nThis will be checked to make sure it matches the redirect URI after the window finishes the redirection.",
          "complexTypes": [],
          "type": "string"
        },
        {
          "name": "broadcastChannelName",
          "tags": [],
          "docs": "The name of the broadcast channel to listen to, relevant only for web",
          "complexTypes": [],
          "type": "string | undefined"
        }
      ]
    }
  ],
  "enums": [],
  "typeAliases": [
    {
      "name": "Record",
      "slug": "record",
      "docs": "Construct a type with a set of properties K of type T",
      "types": [
        {
          "text": "{\r\n    [P in K]: T;\r\n}",
          "complexTypes": [
            "K",
            "T"
          ]
        }
      ]
    },
    {
      "name": "ProviderResponseMap",
      "slug": "providerresponsemap",
      "docs": "",
      "types": [
        {
          "text": "{\n  facebook: FacebookLoginResponse;\n  google: GoogleLoginResponse;\n  apple: AppleProviderResponse;\n  twitter: TwitterLoginResponse;\n  telegram: TelegramLoginResponse;\n  linkedin: LinkedInLoginResponse;\n  tiktok: TikTokLoginResponse;\n  oauth2: OAuth2LoginResponse;\n}",
          "complexTypes": [
            "FacebookLoginResponse",
            "GoogleLoginResponse",
            "AppleProviderResponse",
            "TwitterLoginResponse",
            "TelegramLoginResponse",
            "LinkedInLoginResponse",
            "TikTokLoginResponse",
            "OAuth2LoginResponse"
          ]
        }
      ]
    },
    {
      "name": "GoogleLoginResponse",
      "slug": "googleloginresponse",
      "docs": "",
      "types": [
        {
          "text": "GoogleLoginResponseOnline",
          "complexTypes": [
            "GoogleLoginResponseOnline"
          ]
        },
        {
          "text": "GoogleLoginResponseOffline",
          "complexTypes": [
            "GoogleLoginResponseOffline"
          ]
        }
      ]
    },
    {
      "name": "LinkedInLoginResponse",
      "slug": "linkedinloginresponse",
      "docs": "LinkedIn login response (returned when using the LinkedIn convenience API).",
      "types": [
        {
          "text": "OAuth2LoginResponse",
          "complexTypes": [
            "OAuth2LoginResponse"
          ]
        }
      ]
    },
    {
      "name": "TikTokLoginResponse",
      "slug": "tiktokloginresponse",
      "docs": "TikTok login response (same shape as generic OAuth2).",
      "types": [
        {
          "text": "OAuth2LoginResponse",
          "complexTypes": [
            "OAuth2LoginResponse"
          ]
        }
      ]
    },
    {
      "name": "LoginOptions",
      "slug": "loginoptions",
      "docs": "",
      "types": [
        {
          "text": "{\n      provider: 'facebook';\n      options: FacebookLoginOptions;\n    }",
          "complexTypes": [
            "FacebookLoginOptions"
          ]
        },
        {
          "text": "{\n      provider: 'google';\n      options: GoogleLoginOptions;\n    }",
          "complexTypes": [
            "GoogleLoginOptions"
          ]
        },
        {
          "text": "{\n      provider: 'apple';\n      options: AppleProviderOptions;\n    }",
          "complexTypes": [
            "AppleProviderOptions"
          ]
        },
        {
          "text": "{\n      provider: 'twitter';\n      options: TwitterLoginOptions;\n    }",
          "complexTypes": [
            "TwitterLoginOptions"
          ]
        },
        {
          "text": "{\n      provider: 'telegram';\n      options: TelegramLoginOptions;\n    }",
          "complexTypes": [
            "TelegramLoginOptions"
          ]
        },
        {
          "text": "{\n      provider: 'linkedin';\n      options: LinkedInLoginOptions;\n    }",
          "complexTypes": [
            "LinkedInLoginOptions"
          ]
        },
        {
          "text": "{\n      provider: 'tiktok';\n      options: TikTokLoginOptions;\n    }",
          "complexTypes": [
            "TikTokLoginOptions"
          ]
        },
        {
          "text": "{\n      provider: 'oauth2';\n      options: OAuth2LoginOptions;\n    }",
          "complexTypes": [
            "OAuth2LoginOptions"
          ]
        }
      ]
    },
    {
      "name": "LinkedInLoginOptions",
      "slug": "linkedinloginoptions",
      "docs": "LinkedIn login options (maps to the OAuth2 provider internally).\n`providerId` is set to `linkedin` automatically.",
      "types": [
        {
          "text": "Omit<OAuth2LoginOptions, 'providerId'>",
          "complexTypes": [
            "Omit",
            "OAuth2LoginOptions"
          ]
        }
      ]
    },
    {
      "name": "Omit",
      "slug": "omit",
      "docs": "Construct a type with the properties of T except for those in type K.",
      "types": [
        {
          "text": "Pick<T, Exclude<keyof T, K>>",
          "complexTypes": [
            "Pick",
            "T",
            "Exclude",
            "K"
          ]
        }
      ]
    },
    {
      "name": "Pick",
      "slug": "pick",
      "docs": "From T, pick a set of properties whose keys are in the union K",
      "types": [
        {
          "text": "{\r\n    [P in K]: T[P];\r\n}",
          "complexTypes": [
            "K",
            "T",
            "P"
          ]
        }
      ]
    },
    {
      "name": "Exclude",
      "slug": "exclude",
      "docs": "Exclude from T those types that are assignable to U",
      "types": [
        {
          "text": "T extends U ? never : T",
          "complexTypes": [
            "T",
            "U"
          ]
        }
      ]
    },
    {
      "name": "Extract",
      "slug": "extract",
      "docs": "Extract from T those types that are assignable to U",
      "types": [
        {
          "text": "T extends U ? T : never",
          "complexTypes": [
            "T",
            "U"
          ]
        }
      ]
    },
    {
      "name": "RefreshTokenOptions",
      "slug": "refreshtokenoptions",
      "docs": "Options for `refreshToken()`.\n`providerId` is required for generic `oauth2` and ignored for LinkedIn and TikTok.",
      "types": [
        {
          "text": "{\n      provider: 'oauth2';\n      providerId: string;\n      refreshToken?: string;\n      additionalParameters?: Record<string, string>;\n    }",
          "complexTypes": [
            "Record"
          ]
        },
        {
          "text": "{\n      provider: 'linkedin';\n      providerId?: string;\n      refreshToken?: string;\n      additionalParameters?: Record<string, string>;\n    }",
          "complexTypes": [
            "Record"
          ]
        },
        {
          "text": "{\n      provider: 'tiktok';\n      providerId?: string;\n      refreshToken?: string;\n      additionalParameters?: Record<string, string>;\n    }",
          "complexTypes": [
            "Record"
          ]
        }
      ]
    },
    {
      "name": "LoginResult",
      "slug": "loginresult",
      "docs": "",
      "types": [
        {
          "text": "{\n      provider: 'facebook';\n      result: FacebookLoginResponse;\n    }",
          "complexTypes": [
            "FacebookLoginResponse"
          ]
        },
        {
          "text": "{\n      provider: 'google';\n      result: GoogleLoginResponse;\n    }",
          "complexTypes": [
            "GoogleLoginResponse"
          ]
        },
        {
          "text": "{\n      provider: 'apple';\n      result: AppleProviderResponse;\n    }",
          "complexTypes": [
            "AppleProviderResponse"
          ]
        },
        {
          "text": "{\n      provider: 'twitter';\n      result: TwitterLoginResponse;\n    }",
          "complexTypes": [
            "TwitterLoginResponse"
          ]
        },
        {
          "text": "{\n      provider: 'telegram';\n      result: TelegramLoginResponse;\n    }",
          "complexTypes": [
            "TelegramLoginResponse"
          ]
        },
        {
          "text": "{\n      provider: 'linkedin';\n      result: LinkedInLoginResponse;\n    }",
          "complexTypes": [
            "LinkedInLoginResponse"
          ]
        },
        {
          "text": "{\n      provider: 'tiktok';\n      result: TikTokLoginResponse;\n    }",
          "complexTypes": [
            "TikTokLoginResponse"
          ]
        },
        {
          "text": "{\n      provider: 'oauth2';\n      result: OAuth2LoginResponse;\n    }",
          "complexTypes": [
            "OAuth2LoginResponse"
          ]
        }
      ]
    },
    {
      "name": "ProviderSpecificCallResponseMap",
      "slug": "providerspecificcallresponsemap",
      "docs": "",
      "types": [
        {
          "text": "{\n  'facebook#getProfile': FacebookGetProfileResponse;\n  'facebook#requestTracking': FacebookRequestTrackingResponse;\n  'google#createRestoreCredential': GoogleCreateRestoreCredentialResponse;\n  'google#getRestoreCredential': GoogleGetRestoreCredentialResponse;\n  'google#clearRestoreCredential': GoogleClearRestoreCredentialResponse;\n}",
          "complexTypes": [
            "FacebookGetProfileResponse",
            "FacebookRequestTrackingResponse",
            "GoogleCreateRestoreCredentialResponse",
            "GoogleGetRestoreCredentialResponse",
            "GoogleClearRestoreCredentialResponse"
          ]
        }
      ]
    },
    {
      "name": "ProviderSpecificCall",
      "slug": "providerspecificcall",
      "docs": "",
      "types": [
        {
          "text": "'facebook#getProfile'",
          "complexTypes": []
        },
        {
          "text": "'facebook#requestTracking'",
          "complexTypes": []
        },
        {
          "text": "'google#createRestoreCredential'",
          "complexTypes": []
        },
        {
          "text": "'google#getRestoreCredential'",
          "complexTypes": []
        },
        {
          "text": "'google#clearRestoreCredential'",
          "complexTypes": []
        }
      ]
    },
    {
      "name": "ProviderSpecificCallOptionsMap",
      "slug": "providerspecificcalloptionsmap",
      "docs": "",
      "types": [
        {
          "text": "{\n  'facebook#getProfile': FacebookGetProfileOptions;\n  'facebook#requestTracking': FacebookRequestTrackingOptions;\n  'google#createRestoreCredential': GoogleCreateRestoreCredentialOptions;\n  'google#getRestoreCredential': GoogleGetRestoreCredentialOptions;\n  'google#clearRestoreCredential': GoogleClearRestoreCredentialOptions;\n}",
          "complexTypes": [
            "FacebookGetProfileOptions",
            "FacebookRequestTrackingOptions",
            "GoogleCreateRestoreCredentialOptions",
            "GoogleGetRestoreCredentialOptions",
            "GoogleClearRestoreCredentialOptions"
          ]
        }
      ]
    },
    {
      "name": "FacebookRequestTrackingOptions",
      "slug": "facebookrequesttrackingoptions",
      "docs": "",
      "types": [
        {
          "text": "Record<string, never>",
          "complexTypes": [
            "Record"
          ]
        }
      ]
    },
    {
      "name": "GoogleClearRestoreCredentialOptions",
      "slug": "googleclearrestorecredentialoptions",
      "docs": "Options for `google#clearRestoreCredential` (no fields).",
      "types": [
        {
          "text": "Record<string, never>",
          "complexTypes": [
            "Record"
          ]
        }
      ]
    }
  ],
  "pluginConfigs": []
}