import { EventEmitter, OnChanges, QueryList, SimpleChanges } from '@angular/core';
import { FormBuilder, FormControl, FormGroup } from '@angular/forms';
import { TsCheckboxComponent } from '@terminus/ui/checkbox';
import { TsInputComponent } from '@terminus/ui/input';
import { TsValidatorsService } from '@terminus/ui/validators';
/**
* Define the structure of the login form response
*/
export interface TsLoginFormResponse {
/**
* User's email
*/
email: string;
/**
* User's password
*/
password: string;
/**
* Flag determining if a cookie should be set
*/
rememberMe: boolean;
}
/**
* This is the login-form UI Component
*
* @example
*
*
* https://getterminus.github.io/ui-demos-release/components/login-form
*/
export declare class TsLoginFormComponent implements OnChanges {
private formBuilder;
private validatorsService;
/**
* Store the login form
*/
loginForm: FormGroup;
/**
* Access the email form control
*/
get emailControl(): FormControl;
/**
* Access the password form control
*/
get passwordControl(): FormControl;
/**
* Access the rememberMe form control
*/
get rememberMeControl(): FormControl;
/**
* Provide access to the text inputs
*/
inputComponents: QueryList;
/**
* Provide access to the checkbox inputs
*/
checkbox: TsCheckboxComponent;
/**
* Define the link to the 'forgot password' view
*/
forgotPasswordLink: string[];
/**
* Define the text for the 'forgot password' link
*/
forgotPasswordText: string;
/**
* Define if the form button is showing progress
*/
inProgress: boolean;
/**
* Define if the user has successfully logged in and is being redirected
*/
isRedirecting: boolean;
/**
* Define the login call to action
*/
loginCTA: string;
/**
* Allow a consumer to reset the form via an @Input()
*
* @deprecated Please use the public method `resetForm()`
*/
triggerFormReset: boolean;
/**
* Emit an event on form submission
*/
readonly submission: EventEmitter;
constructor(formBuilder: FormBuilder, validatorsService: TsValidatorsService);
/**
* Trigger a form reset if `triggerFormReset` is changed to TRUE
*
* @param changes - The inputs that have changed
*/
ngOnChanges(changes: SimpleChanges): void;
/**
* Reset the form state
*
* HACK: Calling `reset` doesn't reset individual control validators so we also reinitialize the form.
*/
resetForm(): void;
/**
* Create the log in form
*
* @returns The log in FormGroup
*/
private createForm;
}