/** Angular 2 */
import * as ng from "@angular/core";
import * as ngRouter from "@angular/router";
/** Core */
import { CoreComponent } from "cmf.core/src/core";
/** Nested dependencies */
import Cmf from "cmf.lbos";
/**
* @whatItDoes
*
* Authentication by SSO Provider.
* It allows to authenticate using an external provider.
* Shows a button to open the external authentication page.
* When the user is validated, it dispatches an event.
*
* ### Inputs
* * `string` : **username** - Indicates if this is an authentication or validation
* * `boolean` : **isOnDemand** - If the authentication is being performed on demand (normally when a signature is required)
*
* ### Outputs
* * `Cmf.Foundation.Security.User` : **authenticate** - Event triggered when the authentication is successful
*
* ### Example
*
* ```html
*
*
* ```
*/
export declare class AuthSSO extends CoreComponent implements ng.AfterViewInit {
private _router;
/**
* Username that this login refers to
*/
username: string;
/**
* If the authentication is being performed on demand (normally when a signature is required)
*/
isOnDemand: boolean;
/**
* Event that signals that the external authentication completed.
* Could be an Cmf.Foundation.Security.User
*/
authenticate: ng.EventEmitter;
constructor(_elementRef: ng.ElementRef, _router: ngRouter.Router);
/**
* This method calls the framework to perform the external authentication.
* It just needs to pass in a settings object that will instruct the framework on the details of how
* the authentication should be performed.
* The strategy here is to automatically call the external provider when the component is ready.
* There is a slight catch, which is when the app is redirected to the login after a logout.
* In this case the external authentication should not pop.up, otherwise, it would be an infinite cycle.
* We can use a passed in parameter via router's NavigationExtras to distinguish if the login came from logout.
*
* @private
*
* @memberOf AuthControl
*/
private performExternalAuthentication;
/**
* This is just the method that will call the external authentication when the link is clicked.
*
* @private
* @param {Event} event
*
* @memberOf AuthControl
*/
openExternalAuthenticationPopUp(event: Event): void;
ngAfterViewInit(): void;
}
export declare class AuthSSOModule {
}