import * as Soap from "@soapjs/soap"; import { SessionHandler } from "../../session/session-handler"; import { JwtStrategy } from "../jwt/jwt.strategy"; import { HttpOAuth2Strategy } from "./providers/http-oauth2.strategy"; import { OAuth2StrategyConfig } from "./oauth2.types"; import { ExternalIdentity, ExternalIdentityConfig } from "./external-identity.types"; export interface ExternalIdentityOAuth2StrategyConfig extends OAuth2StrategyConfig { name: string; externalIdentity: ExternalIdentityConfig & { issueAppTokens?: boolean; }; } export declare class ExternalIdentityOAuth2Strategy extends HttpOAuth2Strategy { protected config: ExternalIdentityOAuth2StrategyConfig; readonly name: string; constructor(config: ExternalIdentityOAuth2StrategyConfig, session?: SessionHandler, jwt?: JwtStrategy, logger?: Soap.Logger); authenticate(context: Soap.HttpContext): Promise | null>; protected fetchExternalIdentity(accessToken: string, context: Soap.HttpContext): Promise; protected fetchProviderProfile(accessToken: string): Promise; } export declare function mapOAuth2ProfileToExternalIdentity(profile: any, provider: string): ExternalIdentity;