import { Observable } from 'rxjs';
import { IdentityProviderSelectionOptions, IdentityProviderSelectorService } from './identity-provider-selector.service';
import * as i0 from "@angular/core";
/**
* @ignore
*/
export interface IdentityProviderPromptContext {
selectionOptions: IdentityProviderSelectionOptions;
open: boolean;
}
/**
* An implementation of `IdentityProviderSelectorService` that orchestrates the UI workflow of showing to the user a
* list of identity providers to select when logging in or signing up.
*
* @example
* ```ts
* // your UI prompt component. EG...
* import { IdentityProviderInteractiveSelectorService } from '@christianacca/angular-swa-auth';
*
* @Component({
* selector: 'app-idp-selector-modal',
* template: `
*
* `,
* changeDetection: ChangeDetectionStrategy.OnPush
* })
* export class IdpSelectorModalComponent {
* constructor(public svc: IdentityProviderInteractiveSelectorService) {}
* }
*
* // app.component.ts...
* @Component({
* selector: 'app-root',
* template: `
*
*
* `
* })
* export class AppComponent {}
*
* // app.module.ts...
* imports: [
* AuthModule.forRoot({
* identityProviderSelectorType: IdentityProviderInteractiveSelectorService
* })
* ]
* ```
*/
export declare class IdentityProviderInteractiveSelectorService implements IdentityProviderSelectorService {
private prompt;
/**
* An observable that will emit true/false and should be used to show/hide a prompt asking the user
* to select from the configured li st of identity providers
*/
prompt$: Observable;
private selected;
/**
* Called with the users selection of identity provider to cause the prompt to close
* @param identityProvider Identity Provider that was selected or `undefined` to indicate the user cancelled the login
*/
selectAndClose(identityProvider: string | undefined): void;
selectIdentityProvider(options: IdentityProviderSelectionOptions): Observable;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵprov: i0.ɵɵInjectableDeclaration;
}