import type { OAuthProviderUser } from '../interfaces/oauth-provider.interface'; import { OAuthCodeExchangeProvider } from './oauth-code-exchange.provider'; export interface GitHubProviderConfig { clientId: string; clientSecret: string; /** Override the default `read:user user:email` scope. */ scope?: string; /** Sent in the `User-Agent` header on the userinfo request. GitHub requires it. */ userAgent?: string; } /** * Subset of the GitHub `/user` response we read. See * . * `email` and `name` may be `null` when the user hasn't set them publicly; * the rest are best-effort optional to stay forward-compatible. */ export interface GitHubUser { id?: number; login?: string; name?: string | null; email?: string | null; avatar_url?: string; } /** * GitHub OAuth 2.0 provider. Uses the standard authorization-code flow * documented at . */ export declare class GitHubProvider extends OAuthCodeExchangeProvider { private readonly githubConfig; readonly name = "github"; protected readonly authorizationUrl = "https://github.com/login/oauth/authorize"; protected readonly tokenUrl = "https://github.com/login/oauth/access_token"; protected readonly userInfoUrl = "https://api.github.com/user"; protected readonly scope: string; constructor(githubConfig: GitHubProviderConfig); protected userInfoHeaders(accessToken: string): Record; protected mapProfile(raw: GitHubUser): OAuthProviderUser; } //# sourceMappingURL=github.provider.d.ts.map