/** Angular 2 */
import * as ng from "@angular/core";
/** Core */
import { CoreComponent } from "cmf.core/src/core";
import { CultureInformation } from "cmf.core/src/domain/extensions/app.context";
import { SecurityAuthConfigTokenMode } from "cmf.core/src/domain/extensions/security";
import { DropdownElement } from "../dropdown/dropdown";
import Cmf from "cmf.lbos";
import { AuthOperation, AuthMode } from "./authProvider";
export { AuthOperation, AuthMode };
/**
* @whatItDoes
*
* Authentication component.
* It shows the credentials, token or SSO authentication according to security settings.
* When the user is validated, it dispatches an event.
*
* When an username is given, it will be used and will just ask for the secret.
*
* ### Inputs
* `string` : **actionLabel** - Label to use as Action
* `boolean` : **showRememberMe** - Show the Remember Me box
* `string` : **username** - Indicates if this is an authentication or validation
* `boolean` : **canEditUsername** - Allow to modify the username, if given
* `boolean` : **isAuthOnDemand** - In external authentication, open automatically the validation window
* `boolean` : **canChangeCulture** - Allow to change the culture~
* `AuthOperation` : **authOperation** - Enum representing which authentication process is being made (Login, Sign or Unlock)
*
* ### Outputs
* `Cmf.Foundation.Security.User` : **authenticate** - Event triggered when the authentication is successful
*
* ### Example
*
* ```html
*
*
* ```
*/
export declare class Auth extends CoreComponent {
/**
* Last Authentication mode used (memory cache)
*/
static LAST_MODE: AuthMode;
/**
* Authentication mode (default: Credentials)
*/
mode: AuthMode;
/**
* Authentication operation (Login, Sign or Unlock)
*/
authOperation: AuthOperation;
/**
* Event that signals that the external authentication completed.
*/
authenticate: ng.EventEmitter;
/**
* Allow to edit the username
*/
canEditUsername: boolean;
/**
* Allow to authenticate using credentials
*/
allowCredentials: boolean;
/**
* Allow to authenticate using token
*/
allowToken: boolean;
/**
* It can be one of the following values: "None" | "KeyboardWedge" | "KeyboardWedgeAndCamera" | "Camera"
* Default is "None"
*/
tokenMode: SecurityAuthConfigTokenMode;
/**
* Should allow to change the culture
*/
canChangeCulture: boolean;
/**
* App cultures available
*/
cultures: Array;
/**
* Selected culture
*/
selectedCulture: CultureInformation;
constructor(_elementRef: ng.ElementRef);
private onInitialDataReceived;
/**
* Handles a new authentication. Forward to the parent.
* @param user User authenticated
*/
onAuthenticated(user: Cmf.Foundation.Security.User): void;
/**
* Changes the selected culture
* @param culture New culture
*/
onCultureChange(culture: DropdownElement): void;
/**
* Changes the mode of authentication
* @param mode Mode
*/
selectMode(mode: AuthMode): void;
}
export declare class AuthModule {
}