import { Injectable } from '@angular/core'; export type CognitoAuthProvider = 'amplify' | 'oidc'; export interface CognitoAuthConfig { provider: CognitoAuthProvider; region: string; userPoolId: string; userPoolWebClientId: string; domain: string; redirectSignIn: string; redirectSignOut: string; scopes: string[]; requireAuth?: boolean; } interface AuthProviderApi { initialize(configuration: CognitoAuthConfig): Promise; signIn(): Promise; signOut(): Promise; isAuthenticated(): Promise; getIdToken(): Promise; getAccessToken(): Promise; handleCallback(): Promise; } @Injectable({ providedIn: 'root' }) export class CognitoAuthService { }