import { ChangeDetectorRef, OnInit, OnChanges, SimpleChanges, EventEmitter } from '@angular/core';
import { CurrentProductService } from '@spartacus/storefront';
import { Product } from '@spartacus/core';
import { BehaviorSubject, Observable } from 'rxjs';
import { FormArray, FormBuilder, FormGroup } from '@angular/forms';
import { Router } from '@angular/router';
import { CmsService, ActiveCartService } from '@spartacus/core';
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
import { CartService } from '../../../services/cart.service';
import * as i0 from "@angular/core";
export declare class CustomProductQuantityFormComponent implements OnInit, OnChanges {
    private formBuilder;
    private cdr;
    private cartService;
    private router;
    private cmsService;
    private modalService;
    private activeCartService;
    private currentProductService;
    isDesktop: boolean;
    isMobile: boolean;
    isTablet: boolean;
    totalLength: any;
    totalPrice: any;
    hasBundle: boolean;
    productCode: any;
    productDetails: any;
    unitType: any;
    accessoriesPrice: number;
    selectedColour: any;
    cuttingValidation: any;
    finishedVariantDetails: any;
    finishedAvailableColours: any;
    isFinishedProduct: boolean;
    listView: boolean;
    productForm: any;
    disableAddMore: boolean;
    bundleList: any;
    errorIndex: any;
    hasProdRefIndex: any;
    hasProdRef: boolean;
    hasMinlengthError: any;
    rowIndex: number;
    cartId: any;
    showWaitCursor: BehaviorSubject<boolean>;
    addToCartError: any;
    modalBundleForm: any;
    editProdBundle: any;
    editProdRef: any;
    selectedIndex: any;
    hasData: boolean;
    product$: Observable<Product | null>;
    closeInviteModal: any;
    closebutton: any;
    updateCartEntires: EventEmitter<any>;
    screenWidth: any;
    constructor(formBuilder: FormBuilder, cdr: ChangeDetectorRef, cartService: CartService, router: Router, cmsService: CmsService, modalService: NgbModal, activeCartService: ActiveCartService, currentProductService: CurrentProductService);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    createProductForm(): void;
    updateBundling(event: any): void;
    isNullOrEmpty(value: any): boolean;
    hasErrorIndex(index: any): boolean;
    hasProdRefErrorIndex(index: any): boolean;
    groupByBundle(items: any, key: any): any;
    checkTotalBundleWeight(formValues: any): any;
    getLastBundleIndex(bundleName: any): any;
    getPrevBundleReferenceValue(index: any): any;
    checkHasSameReference(index: any, currentReference: any, bundleName: any): boolean;
    updateSameBundleReference(event: any, index: any, isReference?: boolean): void;
    populateSameBundleReference(event: any, index: any): void;
    updateBundleList(): void;
    getBundleValues(index: any): any;
    editBundleValue(index: any): void;
    saveBundleDetails(event: any): void;
    updateCartDetails(): void;
    updateTotal(): void;
    getKeyValues(source: any, search: any): any;
    getProductQuantityFormGroup(): FormGroup;
    get productQuantityForm(): FormArray;
    addProductQuantityFormGroup(event?: any): void;
    removeProductQuantityForm(index: any, event: any): void;
    jobReferenceErrors(): any;
    prodQtyErrors(index: any): any;
    prodLenErrors(index: any): any;
    minLenErrors(index: any): any;
    prodBundleErrors(index: any): any;
    prodRefErrors(index: any): any;
    isValidForm(): boolean;
    hasErrors(index: any): boolean;
    checkHasMinLengthQty(): void;
    pad3Digits(value: any): any;
    updateLenthValue(element: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<CustomProductQuantityFormComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CustomProductQuantityFormComponent, "app-custom-product-quantity-form", never, { "hasBundle": "hasBundle"; "productCode": "productCode"; "productDetails": "productDetails"; "unitType": "unitType"; "accessoriesPrice": "accessoriesPrice"; "selectedColour": "selectedColour"; "cuttingValidation": "cuttingValidation"; "finishedVariantDetails": "finishedVariantDetails"; "finishedAvailableColours": "finishedAvailableColours"; "isFinishedProduct": "isFinishedProduct"; "listView": "listView"; }, { "updateCartEntires": "updateCartEntires"; }, never, never>;
}
