import { Request } from 'express';
import { Strategy } from 'passport';
import { PassportProfile } from './types';
import { ProfileInfo } from '../types';
/** @public */
export declare class PassportHelpers {
    private constructor();
    static transformProfile: (profile: PassportProfile, idToken?: string) => ProfileInfo;
    static executeRedirectStrategy(req: Request, providerStrategy: Strategy, options: Record<string, string>): Promise<{
        /**
         * URL to redirect to
         */
        url: string;
        /**
         * Status code to use for the redirect
         */
        status?: number;
    }>;
    static executeFrameHandlerStrategy<TResult, TPrivateInfo = never>(req: Request, providerStrategy: Strategy, options?: Record<string, string>): Promise<{
        result: TResult;
        privateInfo: TPrivateInfo;
    }>;
    static executeRefreshTokenStrategy(providerStrategy: Strategy, refreshToken: string, scope: string): Promise<{
        /**
         * An access token issued for the signed in user.
         */
        accessToken: string;
        /**
         * Optionally, the server can issue a new Refresh Token for the user
         */
        refreshToken?: string;
        params: any;
    }>;
    static executeFetchUserProfileStrategy(providerStrategy: Strategy, accessToken: string): Promise<PassportProfile>;
}
