import { BaseCommand } from '@/core/base-command.service';
export interface AddItemParams {
    upc: string;
    fulfillmentId: string;
    partNumber: string;
    quantity: number;
    engravingLines?: string[];
}
export declare class CartCommands extends BaseCommand {
    private readonly uiCommands;
    private readonly checkoutCommands;
    private readonly pubSubService;
    private readonly googleTagManagerService;
    constructor();
    /**
     * Get location from address store
     */
    private getLocationFromAddress;
    /**
     * Build item update with conditional engraving
     */
    private buildItemUpdate;
    /**
     * Sync promo code state from API response
     */
    private syncPromoCodeFromApiResponse;
    /**
     * Sync only items from API response - no retailers/fulfillments
     */
    private syncItemsFromApiResponse;
    /**
     * Sync cart totals and promo code from API response
     */
    private syncCartMetaFromApiResponse;
    /**
     * Update specific fulfillment based on API response
     */
    private updateFulfillment;
    /**
     * Update specific retailer based on API response
     */
    private updateRetailer;
    /**
     * Add new fulfillment and retailer when adding items to new fulfillment
     */
    private addNewFulfillmentAndRetailer;
    /**
     * Clean up fulfillments and retailers after item removal
     */
    private cleanupAfterItemRemoval;
    /**
     * Load cart data - ONLY for initial cart load
     */
    loadCart(): Promise<void>;
    /**
     * Update item quantity - sync items + targeted fulfillment/retailer updates + promo code
     */
    updateItemQuantity(itemId: string, delta: number): Promise<void>;
    /**
     * Remove item - sync items + targeted cleanup + promo code
     */
    removeItem(itemId: string): Promise<void>;
    updateItemEngraving(productItemId: string, engravingLines: string[]): Promise<void>;
    /**
     * Add item - sync items + targeted fulfillment/retailer handling + promo code
     */
    addItem(params: AddItemParams): Promise<void>;
    /**
     * Handle checkout navigation
     */
    handleGoToCheckout(): Promise<void>;
    /**
     * Apply promo code to cart
     */
    applyPromoCode(promoCode: string): Promise<void>;
    /**
     * Remove promo code from cart
     */
    removePromoCode(): Promise<void>;
    /**
     * Clear promo code error
     */
    clearPromoCodeError(): Promise<void>;
    rerenderCart(): void;
    resetCart(): Promise<void>;
}
