import { ActionsSubject } from '@ngrx/store';
import { CartActions } from '@spartacus/core';
import { Observable } from 'rxjs';
import { ProductData, ProductImportInfo } from './import-to-cart.model';
/**
 * An abstract class for contexts based on cart (active cart, saved cart) which share part of logic - mainly handle cart actions and map results.
 */
export declare abstract class CartOrderEntriesContext {
    protected actionsSubject: ActionsSubject;
    protected constructor(actionsSubject: ActionsSubject);
    addEntries(products: ProductData[]): Observable<ProductImportInfo>;
    /**
     * Add products and returns cartId of context cart
     *
     * @param { ProductData[] } products
     * @returns {string} cartId - necessary to get results
     */
    protected abstract add(products: ProductData[]): Observable<string>;
    /**
     * Get emission of add entry results from actions subject
     *
     * @param {string} cartId
     * @returns {Observable<ProductImportInfo>}
     */
    protected getResults(cartId: string): Observable<ProductImportInfo>;
    /**
     * Map actions to summary messages
     *
     * @param {CartActions.CartAddEntrySuccess | CartActions.CartAddEntryFail} action
     * @returns ProductImportInfo
     */
    protected mapMessages(action: CartActions.CartAddEntrySuccess | CartActions.CartAddEntryFail): ProductImportInfo;
}
