import { OnDestroy } from '@angular/core'; import { QuickOrderAddEntryEvent, QuickOrderFacade } from '@spartacus/cart/quick-order/root'; import { ActiveCartService, EventService, OrderEntry, Product, ProductAdapter, ProductSearchConnector } from '@spartacus/core'; import { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs'; import * as i0 from "@angular/core"; export declare class QuickOrderService implements QuickOrderFacade, OnDestroy { protected activeCartService: ActiveCartService; protected productAdapter: ProductAdapter; protected eventService: EventService; protected productSearchConnector?: ProductSearchConnector | undefined; protected productAdded$: Subject; protected entries$: BehaviorSubject; protected softDeletedEntries$: BehaviorSubject>; protected nonPurchasableProductError$: BehaviorSubject; protected hardDeleteTimeout: number; protected quickOrderListLimit: number; protected clearDeleteTimeouts: Record; /** * @deprecated since version 4.2 * Use constructor(activeCartService: ActiveCartService, productAdapter: ProductAdapter, eventService: EventService, productSearchConnector: ProductSearchConnector); instead */ constructor(activeCartService: ActiveCartService, productAdapter: ProductAdapter, eventService: EventService); ngOnDestroy(): void; /** * Get entries */ getEntries(): BehaviorSubject; /** * @deprecated since 4.2 - use searchProducts instead * Search product using SKU */ search(productCode: string): Observable; /** * Search products using query */ searchProducts(query: string, maxProducts?: number): Observable; /** * Clear a list of added entries */ clearList(): void; /** * Get information about the possibility to add the next product */ canAdd(code?: string): Observable; /** * Set quick order list limit property */ setListLimit(limit: number): void; /** * Load a list of entries */ loadEntries(entries?: OrderEntry[]): void; /** * Load a list of entries */ updateEntryQuantity(entryIndex: number, quantity: number): void; /** * Delete single entry from the list */ softDeleteEntry(index: number): void; /** * @deprecated since 4.2 - use softDeleteEntry instead */ removeEntry(index: number): void; /** * Add product to the quick order list */ addProduct(product: Product, quantity?: number): void; /** * Return product added subject */ getProductAdded(): Subject; /** * Set product added subject */ setProductAdded(productCode: string): void; /** * Adding to cart all products from the list */ addToCart(): Observable<[OrderEntry[], QuickOrderAddEntryEvent[]]>; /** * Return soft deleted entries */ getSoftDeletedEntries(): Observable>; /** * Restore soft deleted entry */ restoreSoftDeletedEntry(productCode: string): void; /** * Clear deleted entry from the list */ hardDeleteEntry(productCode: string): void; /** * Clear all deleted entries and timeout subscriptions */ clearDeletedEntries(): void; /** * Return non purchasable product error */ getNonPurchasableProductError(): Observable; /** * Set error that selected product is not purchasable */ setNonPurchasableProductError(product: Product): void; /** * Clear not purchasable product error */ clearNonPurchasableProductError(): void; /** * Add soft deleted entry to the cached list */ protected addSoftEntryDeletion(entry: OrderEntry, clearTimeout?: boolean): void; /** * Get soft deletion entry */ protected getSoftDeletedEntry(productCode: string): OrderEntry; /** * Generate Order Entry from Product */ protected generateOrderEntry(product: Product, quantity?: number): OrderEntry; /** * Add single entry to the list */ protected addEntry(entry: OrderEntry): void; /** * Verify if product is already on the list */ protected isProductOnTheList(productCode: string): boolean; protected isLimitExceeded(): boolean; private createQuickOrderResultEvent; protected clearDeleteTimeout(productCode: string): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }