# Installation
> `npm install --save @types/passport-google-oauth`

# Summary
This package contains type definitions for passport-google-oauth (https://github.com/jaredhanson/passport-google-oauth).

# Details
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/passport-google-oauth.
## [index.d.ts](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/passport-google-oauth/index.d.ts)
````ts
/// <reference types="passport"/>

import passport = require("passport");
import express = require("express");

interface Profile extends passport.Profile {
    gender: string;
    _raw: string;
    _json: any;
}

interface IOAuthStrategyOption {
    consumerKey: string;
    consumerSecret: string;
    callbackURL: string;
    requestTokenURL?: string | undefined;
    accessTokenURL?: string | undefined;
    userAuthorizationURL?: string | undefined;
    sessionKey?: string | undefined;
}

interface VerifyOptions {
    message: string;
}

interface VerifyFunction {
    (error: any, user?: any, msg?: VerifyOptions): void;
}

declare class OAuthStrategy implements passport.Strategy {
    constructor(
        options: IOAuthStrategyOption,
        verify: (
            accessToken: string,
            refreshToken: string,
            profile: Profile,
            done: VerifyFunction,
        ) => void,
    );
    name: string;
    authenticate(req: express.Request, options?: Object): void;
}

interface IOAuth2StrategyOption {
    clientID: string;
    clientSecret: string;
    callbackURL: string;
    authorizationURL?: string | undefined;
    tokenURL?: string | undefined;
    userProfileURL?: string | undefined;
    accessType?: string | undefined;
    approval_prompt?: string | undefined;
    prompt?: string | undefined;
    loginHint?: string | undefined;
    userID?: string | undefined;
    hostedDomain?: string | undefined;
    display?: string | undefined;
    requestVisibleActions?: string | undefined;
    openIDRealm?: string | undefined;
}

interface IOAuth2StrategyOptionWithRequest extends IOAuth2StrategyOption {
    passReqToCallback: boolean;
}

declare class OAuth2Strategy implements passport.Strategy {
    constructor(
        options: IOAuth2StrategyOption,
        verify: (
            accessToken: string,
            refreshToken: string,
            profile: Profile,
            done: VerifyFunction,
        ) => void,
    );
    constructor(
        options: IOAuth2StrategyOptionWithRequest,
        verify: (
            req: express.Request,
            accessToken: string,
            refreshToken: string,
            profile: Profile,
            done: VerifyFunction,
        ) => void,
    );

    name: string;
    authenticate: (req: express.Request, options?: Object) => void;
}

````

### Additional Details
 * Last updated: Tue, 07 Nov 2023 09:09:39 GMT
 * Dependencies: [@types/express](https://npmjs.com/package/@types/express), [@types/passport](https://npmjs.com/package/@types/passport)

# Credits
These definitions were written by [James Roland Cabresos](https://github.com/staticfunction).
