import { ElementRef, QueryList } from '@angular/core';
import { FormArray, FormControl } from '@angular/forms';
import { RestService } from '../../../services/rest.service';
import { ActivatedRoute, Router } from '@angular/router';
import { MessageService } from 'primeng/api';
import { StorageServiceService } from '../../../services/storage.service';
import { MatBottomSheetRef } from '@angular/material/bottom-sheet';
import { MatDialog, MatDialogRef } from '@angular/material/dialog';
import { AuthenticationModel, AuthenticationStylesModel } from './authentication-required.model';
import BaseSection from '../../../sections/BaseSection';
import { ButtonModel, LayOutModel } from '../../../styles/style.model';
import * as i0 from "@angular/core";
export declare class AuthenticationRequiredComponent extends BaseSection {
    private readonly restService;
    private readonly router;
    private readonly messageService;
    private readonly storageService;
    private readonly matDialog;
    private readonly activatedRoute;
    private elementRef;
    private readonly dialogRef;
    private readonly bottomsheetRef;
    data?: AuthenticationModel | any;
    index?: number;
    edit?: boolean;
    delete?: boolean;
    styles?: AuthenticationStylesModel;
    button?: ButtonModel;
    buttonId: string;
    authScreen: 'PHONE' | 'OTP' | 'REGISTER' | 'PASSWORD';
    private mobileTimer;
    email: string;
    mobile: string;
    phoneNumber: string;
    otp: string;
    otpControls: FormArray<FormControl<string | null>>;
    resendCountdown: number;
    private resendInterval;
    isExistingUser: boolean;
    password: string;
    confPassword: string;
    userName: string;
    buttonLoading: boolean;
    businessId: string | null;
    isOTPVerified: boolean;
    passwordHidden: boolean;
    passwordStrengthCount: number;
    passwordStrength: {
        type: string;
        active: boolean;
    }[];
    constructor(restService: RestService, router: Router, messageService: MessageService, storageService: StorageServiceService, matDialog: MatDialog, activatedRoute: ActivatedRoute, elementRef: ElementRef, dialogRef: MatDialogRef<AuthenticationRequiredComponent>, bottomsheetRef: MatBottomSheetRef<AuthenticationRequiredComponent>);
    signUpEnabled: any;
    proceedToCheckout: boolean;
    proceedToEnrollment: boolean;
    tryAtHome: boolean;
    navigateToSchemeDetails: boolean;
    currentPage: string;
    inputs: QueryList<ElementRef>;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    /** Sets --accent-rgb CSS variable so animated circles match the user's brand color */
    private setAccentRgbVar;
    get canGoBack(): boolean;
    goBack(): void;
    closeAuth(): void;
    formatCountdown(secs: number): string;
    startResendTimer(seconds?: number): void;
    sendOTP(): void;
    resendOTPNew(): void;
    verifyOTPNew(): void;
    registerUser(): void;
    loginWithPassword(): void;
    onInput(index: number): void;
    onKeyDown(event: KeyboardEvent, index: number): void;
    getGradientDirection(direction: string | undefined): string;
    get fontColor(): string;
    get accentBackground(): string;
    getFormOtp(): string;
    loginType: "PASSWORD" | "OTP";
    generateOtp: boolean;
    generatedOtp: any;
    oneTimePassword: string;
    close(): void;
    login(): void;
    endUserRefferalDetails(userId: any, referralUniqueId: any): void;
    verifyPassword(): void;
    verifyOTP(): void;
    sendSignupOTP(): void;
    createAccount(): void;
    verifySignupOTP(): void;
    enterMobile(): void;
    generateOTP(): void;
    validateNumber(event: KeyboardEvent): void;
    validateOTP(event: KeyboardEvent): void;
    checkStrength(): void;
    getStrengthColor(index: number): "yellow" | "tomato" | "#d3d3d3ba" | "orange" | "lightgreen";
    emailDebounceTimer: any;
    onEmailChange(): void;
    emailCheck: boolean;
    isEmailValid(): boolean;
    passwordDebounceTimer: any;
    onPasswordChange(): void;
    passwordCheck: boolean;
    isPasswordValid(): boolean;
    mobileDebounceTimer: any;
    onMobileChange(): void;
    mobileCheck: boolean;
    mobileNumberValid(): boolean;
    emailOrNumber: string;
    emailOrNumberCheck: boolean;
    isEmailOrNumberValid(): boolean;
    emailOrNumberDebounceTimer: any;
    onEmailOrNumberChange(): void;
    get isMobile(): boolean;
    get stylesLayout(): LayOutModel;
    get accentColor(): string;
    private hexToRgba;
    setup3DEffects(): void;
    showPassword: boolean;
    syncTrialCartToServerDB(userId: string): void;
    backToHome(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AuthenticationRequiredComponent, [null, null, null, null, null, null, null, { optional: true; }, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AuthenticationRequiredComponent, "simpo-authentication-required", never, { "data": { "alias": "data"; "required": false; }; "index": { "alias": "index"; "required": false; }; "edit": { "alias": "edit"; "required": false; }; "delete": { "alias": "delete"; "required": false; }; }, {}, never, never, true, never>;
}
