import { ElementRef, TemplateRef, Renderer2 } from '@angular/core';
import { ItemVariant, Product } from '../../styles/product.modal';
import BaseSection from '../../../sections/BaseSection';
import { ProductListContentModal, ProductListModal, ProductListStylesModal } from './product-list.modal';
import { EventsService } from '../../../services/events.service';
import { RestService } from '../../../services/rest.service';
import { BackgroundModel, ButtonModel, LayOutModel } from '../../../styles/style.model';
import { ActivatedRoute, Router } from '@angular/router';
import { StorageServiceService } from '../../../services/storage.service';
import { MatBottomSheet } from '@angular/material/bottom-sheet';
import { MatDialog } from '@angular/material/dialog';
import { CartService } from '../../../services/cart.service';
import { MenuItem, MessageService } from 'primeng/api';
import { ProductCardTheme } from '../../../styles/index';
import { AnalyticsService } from '../../../services/analytics.service';
import * as i0 from "@angular/core";
interface BaseModel {
    option: string;
    id: string;
    imgUrl: string;
    status: boolean;
}
interface RatingFilterOption {
    label: string;
    min: number;
    max: number;
    selected: boolean;
}
export declare class ProductListComponent extends BaseSection {
    private platformId;
    private readonly _eventService;
    private readonly restService;
    private readonly router;
    private readonly activatedRoute;
    private readonly storageService;
    private readonly matBottomSheet;
    private readonly matDialog;
    private readonly cartService;
    private readonly messageService;
    private renderer;
    private readonly analyticsService;
    responseData?: Product[];
    data?: ProductListModal;
    index?: number;
    edit?: boolean;
    delete?: boolean;
    customClass?: string;
    nextComponentColor?: BackgroundModel;
    isLoading: boolean;
    apiLoading: boolean;
    isListLoading: boolean;
    isAllListLoaded: boolean;
    content?: ProductListContentModal;
    button?: ButtonModel;
    totalPages: number;
    scrollingValue: number;
    pricingMin: number;
    pricingMax: number;
    minRating: number;
    maxRating: number;
    sortBy: string;
    searchText: string;
    private USER_CART;
    private USER_WISHLIST;
    minProductPrice: number;
    maxProductPrice: number;
    filteredChips: any[];
    filteredPriceChip: any[];
    filteringArray: {
        name: string;
        value: string;
    }[];
    screenWidth: number;
    filterList: any[];
    styles?: ProductListStylesModal;
    totalCount: number;
    pageNo: number;
    size: number;
    searchTxt: string;
    theme: typeof ProductCardTheme;
    items: MenuItem[] | null;
    latestAnalyicsEvent: string;
    private filterBottomSheetRef;
    private sortingDialogRef;
    categories: BaseModel[];
    collections: BaseModel[];
    imageIndex: number;
    listScrollContainer: ElementRef<HTMLDivElement>;
    getScreenSize(): void;
    onWindowScroll(event: Event): void;
    constructor(platformId: Object, _eventService: EventsService, restService: RestService, router: Router, activatedRoute: ActivatedRoute, storageService: StorageServiceService, matBottomSheet: MatBottomSheet, matDialog: MatDialog, cartService: CartService, messageService: MessageService, renderer: Renderer2, analyticsService: AnalyticsService);
    get stylesLayout(): LayOutModel;
    isOpen: boolean;
    toggleDropdown(): void;
    closeDropdown(): void;
    priceRanges: {
        label: string;
        min: number;
        max: number;
        selected: boolean;
    }[];
    ratingOptions: RatingFilterOption[];
    onPriceRangeChange(index?: number): void;
    onRatingChange(selectedRating: RatingFilterOption): void;
    applyFilter(category?: any, type?: 'SORT' | 'FILTER'): void;
    raiseLead(): void;
    priceRangeFlag: boolean;
    filterItemList(): void;
    dynamicPriceRange(minPrice: number, maxPrice: number): void;
    selectOption(filter: any, event: MouseEvent): void;
    getSelectedName(): string;
    handleProductListScroll(): void;
    loadMoreProductsToList(): void;
    ecomConfigs: any;
    getEcommerceConfigs(): void;
    toShowInJewellery: boolean;
    IsEcommerce: boolean;
    ngOnInit(): void;
    fetchAnalytics(): void;
    getCategoriesAndCollection(): void;
    get selectedCategoryCollectionChips(): {
        id: string;
        name: string;
    }[];
    get selectedPriceRangeChips(): {
        id: string;
        name: string;
        type: string;
    }[];
    get selectedRatingChips(): {
        id: string;
        name: string;
        type: string;
    }[];
    get allActiveChips(): {
        id: string;
        name: string;
        type: string;
    }[];
    getAllCategories(): void;
    getAllCollections(): void;
    updateProductCartWishlistProperties(): void;
    filterByCategoryCollectionParam(qCategories: any, qCollections: any): void;
    removeFilter(filter: any): void;
    applyProductWidth(): boolean;
    getProductWidth(): string;
    proceedToProductDesc(product: Product): void;
    private toSlug;
    ringSizes: {
        size: string;
        status: boolean;
    }[];
    productTypesData: {
        size: string;
        status: boolean;
    }[];
    shopForData: {
        size: string;
        status: boolean;
    }[];
    materialSizeData: {
        size: string;
        status: boolean;
    }[];
    metalSizeData: {
        size: string;
        status: boolean;
    }[];
    toggleMetalSize(size: any): void;
    toggleShopSize(size: any): void;
    toggleSize(size: any): void;
    toggleProductSize(size: any): void;
    toggleMaterialSize(size: any): void;
    clearFilter(): void;
    filterScroll: ElementRef;
    isSyncing: boolean;
    ngAfterViewInit(): void;
    handleSyncScroll(): void;
    toggleItemToFav(event: PointerEvent | MouseEvent, product: Product, type: 'ADD' | 'REMOVE'): void;
    addItemToCart(event: PointerEvent | MouseEvent, product: Product, type: 'ADD' | 'SUBSTRACT'): void;
    searchProduct(): void;
    selectVarient(product: Product, varient: ItemVariant): void;
    private getVarientQuantity;
    private isVarientPresentInWishtlist;
    navigateFilter(sorting: string): void;
    closeFilter(): void;
    openFilter(FilterSection: any): void;
    openSorting(SortingSection: any): void;
    paginationChange(page: number): void;
    closeDialog(): void;
    isItemOutOfStock(product: Product): boolean;
    getItemVarient(product: Product, varientId: string): ItemVariant | null;
    get isMobile(): boolean;
    get currency(): string;
    get minSize(): number;
    getProductImages(product: any): any;
    changeImage(product: any, action: 'PREV' | 'NEXT', index: number): Promise<void>;
    getButtonId(index: number): string;
    getButtonStyle(index: number): import("../../../styles/style.model").ButtonStyleModel | undefined;
    getElementRow(): number;
    showAllCategories: boolean;
    get displayedCategories(): BaseModel[];
    toggleCategories(): void;
    showAllCollections: boolean;
    get displayedCollections(): BaseModel[];
    toggleCollections(): void;
    addToTrialCart(product: Product): Promise<void>;
    productName: string;
    openDialogBox(template: TemplateRef<HTMLDivElement>, productName: any): void;
    matCloseDialog(): void;
    otherLanguage: string;
    videoCallPayload: any;
    validationErrors: any;
    isSubmitting: boolean;
    scheduled: boolean;
    scheduleVideoCall(): void;
    resetValidationErrors(): void;
    resetForm(): void;
    onInputChange(field: any): void;
    closeModal(): void;
    languages: string[];
    selectedLang: string;
    getTextColor(color: any): "#000000" | "#ffffff";
    static ɵfac: i0.ɵɵFactoryDeclaration<ProductListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ProductListComponent, "simpo-product-list", never, { "responseData": { "alias": "responseData"; "required": false; }; "data": { "alias": "data"; "required": false; }; "index": { "alias": "index"; "required": false; }; "edit": { "alias": "edit"; "required": false; }; "delete": { "alias": "delete"; "required": false; }; "customClass": { "alias": "customClass"; "required": false; }; "nextComponentColor": { "alias": "nextComponentColor"; "required": false; }; }, {}, never, never, true, never>;
}
export {};
