import { IApihawkSession } from '@apihawk/connector';
import { BilliaSDKServiceBase } from '../lib/billia-sdk-service-base';
import { ICartItem, ICartItemToAdd, ICartSummary, ICheckoutResponse } from './billia-sdk-cart.types';
import { IRestPaginatedResource } from '../types';
import { ApiHawkConnectorService } from '@apihawk/connector';
export declare class BilliaSDKCart extends BilliaSDKServiceBase {
    private billiaSDKCatalog;
    constructor(api: ApiHawkConnectorService);
    /**
     * Adding item to cart
     * @param {ICartItemToAdd} cartItem
     * @param {IApihawkSession} session
     * @param tempCart
     * @returns {Promise<boolean>}
     */
    addToCart(cartItem: ICartItemToAdd, session: IApihawkSession, tempCart?: ICartItemToAdd[]): Promise<boolean>;
    /**
     * Bulk add to cart
     * @param {ICartItemToAdd[]} items
     * @param {IApihawkSession} session
     * @returns {Promise<boolean>}
     */
    bulkAddToCart(items: ICartItemToAdd[] | undefined, session: IApihawkSession): Promise<boolean>;
    /**
     * Get dummy cart items.
     * @param {IApihawkSession} session
     * @param {ICartItemToAdd[]} tempCart
     * @returns {Promise<any>}
     */
    getDummyCart(session: IApihawkSession, tempCart: ICartItemToAdd[]): Promise<ICartItemToAdd[]>;
    /**
     * Get dummy cart
     * @param {ICartItemToAdd[]} cart
     * @returns {Promise<ICartItemToAdd[]>}
     * @private
     */
    _getDummyCart(cart?: ICartItemToAdd[]): Promise<ICartItemToAdd[]>;
    /**
     * Get cart items.
     * @param {IApihawkSession} session
     * @param {ICartItem[]} tempCart
     * @param {string} promocode
     * @param {number} customerProfileId
     * @returns {Promise<IRestPaginatedResource<ICartItem>>}
     */
    getCart(session: IApihawkSession, tempCart?: ICartItem[], promocode?: string, customerProfileId?: number): Promise<IRestPaginatedResource<ICartItem>>;
    /**
     * Get cart summary.
     * @param {IApihawkSession} session
     * @returns {Promise<ICartSummary>}
     */
    getCartSummary(session: IApihawkSession): Promise<ICartSummary>;
    /**
     * Remove cart item.
     * @param {number} id
     * @param {IApihawkSession} session
     * @returns {Promise<boolean>}
     */
    removeCartItem(id: number, session: IApihawkSession): Promise<boolean>;
    /**
     * Patch cart item.
     * @param {number} id
     * @param {ICartItemToAdd} body
     * @param {IApihawkSession} session
     * @returns {Promise<boolean>}
     */
    patchCartItem(id: number, body: ICartItemToAdd, session: IApihawkSession): Promise<boolean>;
    /**
     * Checkout cart
     * @param {IApihawkSession} session
     * @param {number} paymentMethodId
     * @param {number} customerProfileId
     * @param {number} affiliateID
     * @returns {Promise<ICheckoutResponse>}
     */
    checkout(session: IApihawkSession, paymentMethodId: number, customerProfileId?: number, affiliateID?: number): Promise<ICheckoutResponse>;
    /**
     * Renew
     * @param session
     * @param {number} customerProductId
     * @returns {Promise<any>}
     */
    renewCustomerProduct(session: IApihawkSession, customerProductId: number): Promise<any>;
    /**
     * Get a promo code.
     *
     * @author Anton Katsarov
     * @param {string} code - The promo code
     * @param {Object} session
     */
    getPromoCode(code: string | undefined, session: IApihawkSession): Promise<any>;
    /**
     * Get cart
     * @param session
     * @param {string} promocode
     * @param {number} customerProfileId
     * @returns {Promise<IRestPaginatedResource<ICartItem>>}
     * @private
     */
    private _getCart;
    /**
     * Add cart items
     * @param {ICartItemToAdd[]} items
     * @param {IApihawkSession} session
     * @returns {Promise<boolean>}
     * @private
     */
    private _addCartItems;
    /**
     * Update option value
     * @param {number} itemId
     * @param option
     * @param values
     * @returns {any}
     * @private
     */
    private _updateOptionValue;
}
//# sourceMappingURL=billia-sdk-cart.d.ts.map