import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { AppLoginContainerModel, AppLoginContainerModelUpdate, AppLoginRegistrationContainerModel, AppLoginSubjectContainerModel } from '../../../../../models/aggregates/id';
import { AppleProfile, FacebookProfile, GoogleProfile, LoginRequest } from '../../../../../models/dbschema/auth.model';
import { ForgotPasswordInitRequestDtoModel } from '../../data-transfer-objects/forgot-password-init-request-dto.model';
import { RegistrationRequestDtoModel } from '../../data-transfer-objects/registration-request-dto.model';
import { ResendConfirmationRequestDtoModel } from '../../data-transfer-objects/resend-confirmation-request-dto.model';
import { UserConfirmationRequestModel } from '../../data-transfer-objects/user-confirmation-request.model';
import { ApiResponseModel, BasicApiResponseModel, EcomLoginResponseModel, LoginResponse } from '../shared/api-response.model';
import { ApiVisa } from '../shared/api-visa.model';
import { BaseApiTemplateService } from '../shared/base-api-template-service.model';
import { ForgotPwdConfirmRequest, ResetEmail, ResetPassword } from "../shared/login.model";
import { LoginWithOtpInitRequestDtoModel } from '../../data-transfer-objects';
import { AppPasswordlessLoginContainer } from '../../../../../models/aggregates/app-login';
export declare class AuthService extends BaseApiTemplateService<any> {
    constructor(http: HttpClient);
    loginByPassword(requestData: LoginRequest, visa: ApiVisa): Observable<BasicApiResponseModel<any>>;
    loginWithGoogle(req: GoogleProfile, visa: ApiVisa): Observable<BasicApiResponseModel<LoginResponse>>;
    loginWithFaceBook(req: FacebookProfile, visa: ApiVisa): Observable<BasicApiResponseModel<LoginResponse>>;
    loginWithAzure(visa: ApiVisa): Observable<ApiResponseModel<any>>;
    loginWithApple(req: AppleProfile, visa: ApiVisa): Observable<BasicApiResponseModel<LoginResponse>>;
    ecomloginByPassword(requestData: LoginRequest, visa: ApiVisa): Observable<EcomLoginResponseModel<any>>;
    loginWithOtpInitWithJwtToken(requestData: LoginWithOtpInitRequestDtoModel, jwtToken: string, visa: ApiVisa): Promise<BasicApiResponseModel<AppPasswordlessLoginContainer>>;
    register(requestData: RegistrationRequestDtoModel, visa: ApiVisa): Promise<BasicApiResponseModel<AppLoginContainerModel>>;
    registerTenant(requestData: RegistrationRequestDtoModel, visa: ApiVisa): Observable<BasicApiResponseModel<AppLoginContainerModel>>;
    ecomRegister(requestData: RegistrationRequestDtoModel, visa: ApiVisa, followExistingWorkflow?: boolean, websiteCode?: string): Promise<BasicApiResponseModel<AppLoginContainerModel>>;
    registerWithGoogle(req: GoogleProfile, visa: ApiVisa, tenantCode?: string): Observable<BasicApiResponseModel<AppLoginContainerModelUpdate>>;
    registerWithFacebook(req: FacebookProfile, visa: ApiVisa, tenantCode?: string): Observable<BasicApiResponseModel<AppLoginContainerModelUpdate>>;
    getTenantUserProfile(visa: ApiVisa): Observable<any>;
    forgotPasswordInit(requestData: ForgotPasswordInitRequestDtoModel, visa: ApiVisa): Promise<ApiResponseModel<any>>;
    forgotPasswordWithJwtToken(requestData: ForgotPasswordInitRequestDtoModel, jwtToken: string, visa: ApiVisa): Promise<ApiResponseModel<any>>;
    forgotPasswordEcom(requestData: ForgotPasswordInitRequestDtoModel, visa: ApiVisa): Promise<ApiResponseModel<any>>;
    forgotPasswordEcomWithJwtToken(requestData: ForgotPasswordInitRequestDtoModel, jwtToken: string, visa: ApiVisa): Promise<ApiResponseModel<any>>;
    forgotPasswordConfirm(requestData: ForgotPwdConfirmRequest, visa: ApiVisa): Promise<ApiResponseModel<any>>;
    forgotPasswordConfirmWithToken(requestData: ForgotPwdConfirmRequest, visa: ApiVisa): Promise<ApiResponseModel<any>>;
    changePassword(requestData: ResetPassword, visa: ApiVisa): Promise<ApiResponseModel<any>>;
    changePasswordWithoutAuth(requestData: ResetPassword, visa: ApiVisa): Promise<ApiResponseModel<any>>;
    changeEmail(requestData: ResetEmail, visa: ApiVisa): Promise<ApiResponseModel<AppLoginSubjectContainerModel>>;
    resendConfirmation(email: string, visa: ApiVisa): Promise<ApiResponseModel<any>>;
    resendConfirmationEmail(requestData: ResendConfirmationRequestDtoModel, visa: ApiVisa): Promise<ApiResponseModel<any>>;
    verifyEmail(email: string, code: string, visa: ApiVisa): Promise<ApiResponseModel<any>>;
    phoneVerify(number: string, messageTemplate: string, visa: ApiVisa): Promise<ApiResponseModel<any>>;
    phoneVerifyConfirmation(code: string, number: string, visa: ApiVisa): Promise<ApiResponseModel<any>>;
    getPermission(guid: string, visa: ApiVisa): Observable<Object>;
    /**
     * @deprecated
     * @param please donnt use this method
     */
    getProfile(visa: ApiVisa): Observable<Object>;
    registerEmailV2(requestData: RegistrationRequestDtoModel, visa: ApiVisa, tenantCode?: string, websiteCode?: string, inviteUrlKey?: string): Promise<BasicApiResponseModel<AppLoginRegistrationContainerModel>>;
    registerMobileNumberV2(requestData: RegistrationRequestDtoModel, visa: ApiVisa, tenantCode?: string, websiteCode?: string, inviteUrlKey?: string): Promise<BasicApiResponseModel<AppLoginRegistrationContainerModel>>;
    generateJwtTokenWithRecaptha(apiVisa: ApiVisa, gRecaptchaResponseToken: string, captchaType?: 'google' | 'tencent', randStr?: string): Observable<BasicApiResponseModel<string>>;
    generateJwtTokenWithoutRecaptha(apiVisa: ApiVisa): Observable<BasicApiResponseModel<string>>;
    registerEmailWithJwtToken(requestData: RegistrationRequestDtoModel, visa: ApiVisa, tenantCode?: string, websiteCode?: string, inviteUrlKey?: string, jwtToken?: string): Promise<BasicApiResponseModel<AppLoginRegistrationContainerModel>>;
    registerMobileWithJwtToken(requestData: RegistrationRequestDtoModel, visa: ApiVisa, tenantCode?: string, websiteCode?: string, inviteUrlKey?: string, jwtToken?: string): Promise<BasicApiResponseModel<AppLoginRegistrationContainerModel>>;
    userConfirmationV2(userConfirmationRequest: UserConfirmationRequestModel, visa: ApiVisa): Promise<ApiResponseModel<any>>;
    resendConfirmationEmailV2(requestData: ResendConfirmationRequestDtoModel, visa: ApiVisa, tenantCode?: string, jwtToken?: string): Promise<BasicApiResponseModel<AppLoginRegistrationContainerModel>>;
    resendConfirmationMobileNumberV2(requestData: ResendConfirmationRequestDtoModel, visa: ApiVisa, tenantCode?: string, jwtToken?: string): Promise<BasicApiResponseModel<AppLoginRegistrationContainerModel>>;
    loginWithNoAppletLoading(requestData: LoginRequest, visa: ApiVisa): Observable<BasicApiResponseModel<any>>;
}
