import { BehaviorSubject, Observable, Subject } from 'rxjs'; import { BasketEntriesService, BasketsService, SuppliersService } from '../../_services'; import { ComparableProduct } from '../../_types/builded/comparable-product'; import { EventTrace } from '../../_types/event-trace'; import { BasketEntry } from '../basket-entry'; import { Item } from '../item'; export declare enum ActionStatus { INITIAL_STATE = "INITIAL_STATE", SENT_TO_RETAILER = "SENT_TO_RETAILER", RETAILER_PRODUCT_MATCH = "RETAILER_PRODUCT_MATCH" } export interface UpdateMealzParams { recipeId?: string; ingredientId?: string; eventTrace?: EventTrace; item?: Item; previousItem?: Item; searchString?: string; } export declare class BasketAction { basketEntry: BasketEntry; updateMealzParams: UpdateMealzParams; basketsService?: BasketsService; basketEntriesService?: BasketEntriesService; suppliersService?: SuppliersService; status: ActionStatus; id: string; quantity: number; updatedFromRetailer: boolean; onSuccess: Subject; onTimeout: Subject; onError: Subject; constructor(basketEntry: BasketEntry, updateMealzParams: UpdateMealzParams, basketsService?: BasketsService, basketEntriesService?: BasketEntriesService, suppliersService?: SuppliersService); get type(): string; /** * We don't need to log the whole action, a readable version with only the necessary fields is better suited */ get loggable(): { type: string; id: string; quantity: number; quantityToAdd: number; fromRetailer: boolean; }; updateMealzBasket(): void; shouldRemoveAction(basketEntryFound: BasketEntry): boolean; initProcess(mealzActionList: BehaviorSubject): void; updateBasketEntryQuantity(): Observable; createActionForRetailer(): Observable; syncWithUpdateFromRetailer(productFromRetailer: ComparableProduct): void; getDifferenceFromBasketEntry(toCompare: BasketAction): Observable; private findBasketEntryById; } //# sourceMappingURL=basket-action.d.ts.map