import { HttpClient } from "@angular/common/http";
import { OnDestroy } from "@angular/core";
import { Observable } from "rxjs";
import { Review } from "../ecommerce/styles/review.modal";
import { DeviceInfo } from "../ecommerce/styles/user.modal";
import { checkItemAlreadyAdded, syncItemToServerDBRequest } from "../ecommerce/styles/product.modal";
import { CookieService } from "ngx-cookie-service";
import { StorageLike } from '../services/storage-like';
import * as i0 from "@angular/core";
export declare class RestService implements OnDestroy {
    private readonly http;
    private BASE_URL;
    private ECOMMERCE_URL;
    private CMIS_URL;
    private readonly cookieService;
    private storage;
    private PASSBOOK_URL;
    private APPOINTMENT_URL;
    private RECOMMENDATION_URL;
    private environmentTypeSubscriber;
    businessDetails: any;
    subIndustryName: any;
    isJewellery: boolean;
    constructor(http: HttpClient, BASE_URL: string, ECOMMERCE_URL: string, CMIS_URL: string, cookieService: CookieService, storage: StorageLike, PASSBOOK_URL: string, APPOINTMENT_URL: string, RECOMMENDATION_URL: string);
    orraBaseUrl: string;
    getBusinessDetails(): void;
    ngOnDestroy(): void;
    getFeaturedProduct(collectionId: string | undefined | null): Observable<any>;
    getCategoriesByCollectionId(collectionId: string): Observable<any>;
    getAllCategoriesByBusinessId(payload: any): Observable<Object>;
    getPassbookOrderStatus(orderId: any): Observable<Object>;
    getProductBySelectedCategory(categoryId: string): Observable<Object>;
    getAllSchemes(userId?: any, storeId?: any): any;
    getAllRedemptionSchemes(): Observable<Object>;
    getAllProducts(payload: any): Observable<Object>;
    getProductDetails(productId?: string | null): Observable<any>;
    getProductDetailsV2(slugName?: string | null): Observable<any>;
    getCollectionByIds(collectionIds: string[]): Observable<any>;
    getAllCategories(): Observable<any>;
    getAllCollections(): Observable<any>;
    getFilteredProduct(collectionIds: string[], categoryIds: string[], searchText: string, minPrice: number, maxPrice: number, minRating: number, maxRating: number, sortBy: string, pageNo: number, size: number): Observable<{
        count: any;
        minPrice: any;
        maxPrice: any;
        data: any;
    }>;
    getProductByCategoryId(categoryId: string): Observable<{
        count: any;
        data: any;
    }>;
    getProductByCollectionId(collectionId: string): Observable<{
        count: any;
        data: any;
    }>;
    addReview(payload: Review): Observable<Object>;
    getAllReviews(productId: string): Observable<Object>;
    generateOTP(mobile: string, countryCode: string): Observable<Object>;
    verifyOTP(mobile: string, otp: string, deviceInfo: DeviceInfo): Observable<Object>;
    resendOTP(mobile: string, countryCode: string): Observable<Object>;
    applicableDiscountList(cartId: string): Observable<Object>;
    addItemToDB(userCart: any): Observable<Object>;
    getUserItems(userId: string, cartType: 'CART' | 'WISHLIST' | 'TRIAL_CART'): Observable<Object>;
    getUserInfo(userId: string): Observable<Object>;
    addUserAddress(user: any): Observable<Object>;
    updateProfile(payload: any): Observable<Object>;
    getUserOrders(payload: any): Observable<Object>;
    getUserWishlist(userId: string): Observable<Object>;
    moveItemToCart(userId: string, payload: any): Observable<Object>;
    createPaymentToken(payload: any): Observable<Object>;
    checkPaymentStatus(payload: any): Observable<Object>;
    getRecentViewProduct(userId: string): Observable<any>;
    sendSignupOTP(payload: any): Observable<Object>;
    verifySignupOTP(payload: any): Observable<Object>;
    signinPassword(passData: any): Observable<Object>;
    endUserRefferalDetails(userId: any, referralUniqueId: any): Observable<Object>;
    createAppointment(data: any): Observable<Object>;
    getAllLocation(businessId: any, size: number, page: number): Observable<Object>;
    getAllTimeSlots(locationId: any, date: Date): Observable<Object>;
    getAllService(businessId: any, size: any, page: any, locationId?: any): Observable<Object>;
    getAllStaffByLocation(businessId: any, size: number, page: number, locationId: string, serviceId: string): Observable<Object>;
    getAvailableSlots(data: any): Observable<Object>;
    getSelectedListFields(bId: any, showInErp: any, formName: any): Observable<Object>;
    getActiveSubscriptionForFeeStructure(businessId: any, gradeId: any): Observable<Object>;
    createAdmission(payload: any): Observable<Object>;
    createPaymentLink(data: any): Observable<Object>;
    createRegistrationForPayment(payload: any): Observable<Object>;
    getSubscriptionForFeeStructure(gradeId: any): Observable<Object>;
    getFeeStructure(payload: any): Observable<Object>;
    newFeeStructureGetList(data: any): Observable<Object>;
    getAllDocument(payload: any): Observable<Object>;
    getLeadById(leadId: any): Observable<Object>;
    getRegistrationList(payload: any): Observable<Object>;
    getAllComponentCategories(): Observable<Object>;
    private safeParse;
    getTemplate(): Observable<Object>;
    getEcommerceConfigs(): Observable<Object>;
    postVideoCallDetails(payload: any): Observable<Object>;
    getStoreLocatorDetails(pincode: any): Observable<Object>;
    saveImagesToBusinessLibrary(mediaRequest: any): Observable<Object>;
    regenerateText(request: any): Observable<Object>;
    getCategoriesHeaderData(): Observable<Object>;
    getAllStores(payload: any): Observable<Object>;
    getAllAppointmentService(payload: any): Observable<Object>;
    getAllStaff(payload: any): Observable<Object>;
    getStoreById(storeId: string): Observable<Object>;
    postNewsLetter(email: any): Observable<Object>;
    addReviewToProduct(payload: any): Observable<Object>;
    getAllStoresOrra(pageNo: any, size: any): Observable<Object>;
    getstaffByStoreId(storeId: any): Observable<Object>;
    getAllScheme(): Observable<Object>;
    getAllState(): Observable<Object>;
    getCityByStateBypaginated(stateId: any, pageNo: any, size: any): Observable<Object>;
    getStoreBySlab(data: any): Observable<Object>;
    addTrialItem(request: syncItemToServerDBRequest): Observable<Object>;
    checkItemAlreadyAdded(request: checkItemAlreadyAdded): Observable<Object>;
    deleteItemFromCart(request: syncItemToServerDBRequest): Observable<Object>;
    bookAppointment(request: any): Observable<Object>;
    createEnrollmentScheme(enrollement: any): Observable<Object>;
    getHomeAppointmentList(userId: string): Observable<Object>;
    getAllOrraScheme(): Observable<Object>;
    redeemScheme(scheme: string, cartId: any, action: boolean): Observable<Object>;
    getReviewsByProductId(productId: string, pageNumber: number): Observable<Object>;
    getFieldsToDisplay(fieldsList: any[]): any;
    getBookingSlots(payload: any): Observable<Object>;
    bookAppointmentV2(payload: any): Observable<Object>;
    paymentForAppointment(payload: any): Observable<Object>;
    generateToken(bId: any, userId: any): Observable<Object>;
    getAllEnrolledSchemes(payload: any): Observable<Object>;
    enrollScheme(payload: any, checkCharges: boolean): Observable<Object>;
    getBenefitSlab(passbookId?: any): Observable<Object>;
    getAllStaffList(): Observable<Object>;
    requestRedeemption(passbookId: any): Observable<Object>;
    PassbookAppStatus(bId: any): Observable<Object>;
    checkAppInstalled(bId: any, appName: string): Observable<Object>;
    getRedeemPoints(bId: any, userId: any, evetType: string, orderValue: any, rewardPoints: boolean): Observable<Object>;
    paymentWithCompletePoints(cartId: any, data: any): Observable<Object>;
    getAllPassbookDues(bId: any, userId: any): Observable<Object>;
    getToken(): string;
    getAllTransactions(payload: any): Observable<Object>;
    getSchemeDetails(schemeId: any): Observable<Object>;
    getMetalPrice(storeId: any): Observable<Object>;
    createLead(payload: any): Observable<Object>;
    getAppointmentPaymentStatus(orderId: any): Observable<Object>;
    getOtpForLogin(payload: any): Observable<Object>;
    /** New OTP API: PUT /ecommerce/user/auth/send-otp
     *  Body: { identifier, businessId }
     *  Response: { data: { isExistingUser: boolean, message: string } }
     */
    sendOtpV2(identifier: string, businessId: string): Observable<Object>;
    verifyOtpV2(payload: any): Observable<Object>;
    completeSignupV2(payload: any): Observable<Object>;
    loginWithPasswordNew(payload: any): Observable<Object>;
    flush(eventsToSend: any): void;
    getPopularSearches(): Observable<Object>;
    getMenuItems(menuId: any): Observable<Object>;
    getHomeRecommendations(businessId: any, UserId: any): Observable<Object>;
    getCartRecommendations(businessId: any, UserId: any): Observable<Object>;
    getProductDescriptionRecommendations(businessId: any, UserId: any): Observable<Object>;
    static ɵfac: i0.ɵɵFactoryDeclaration<RestService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<RestService>;
}
