import { TemplateResult, CSSResult } from 'lit';
import GmfBaseElement from 'gmfapi/elements/BaseElement';
import { MessageType } from 'ngeo/message/Message';
import { UserState } from 'gmfapi/store/user';
import { Configuration } from 'gmfapi/store/config';
/**
 * The definition of a PasswordValidator
 */
export type PasswordValidator = {
    isPasswordValid: (val: string) => boolean;
    notValidMessage: string;
};
export default class GmfAuthForm extends GmfBaseElement {
    private passwordValidator;
    private loginInfoMessage;
    private isLoading;
    private disconnectedShown;
    private resetPasswordShown;
    private twoFactorAuth;
    private allowPasswordChange;
    private allowPasswordReset;
    private changingPassword;
    private userMustChangeItsPassword;
    private openIdConnectUrl;
    private error;
    private otpImage;
    private gmfUser;
    private customCSS_;
    private changingPasswordUsername_;
    private initialApplicationUrl;
    private currentApplicationUrl;
    private openIdConnectBaseUrl;
    connectedCallback(): void;
    _updateOpenIdConnectUrl(): void;
    initConfig(configuration: Configuration): void;
    static styles: CSSResult[];
    protected render(): TemplateResult;
    /**
     * @private
     */
    setOtpImage_(): void;
    /**
     * @param {UserState} userState state of the user.
     * @private
     */
    onUserStateUpdate_(userState: UserState): void;
    /**
     * @private
     */
    handleUserMustChangeItsPassword_(): void;
    /**
     * Calls the authentication service changePassword method.
     * @param evt the event
     */
    changePassword(evt: Event): void;
    /**
     * Calls the authentication service login method.
     * @param evt Event from the form submit action.
     */
    login(evt: Event): void;
    /**
     * Calls the authentication service logout method.
     * @param evt Event from the form submit action.
     */
    logout(evt: Event): void;
    /**
     * Effects on manual try to login/logout.
     */
    manualLoginLogout_(): void;
    /**
     * Calls the authentication service resetPassword method.
     * @param evt Event from the form submit action.
     */
    resetPassword(evt: Event): void;
    /**
     * Reset the changePassword values and error.
     */
    changePasswordReset(): void;
    /**
     * Set an error notification.
     * @param errors List of errors
     * @param messageType Type of message
     */
    setError_(errors: string[], messageType?: MessageType): void;
    /**
     * Clear the form
     */
    cleanForm_(): void;
    /**
     * Reset the error notification
     */
    resetError_(): void;
}
