import { BaseCommand } from '@/core/base-command.service';
import type { ICheckoutItemStore, ICheckoutStripeFormStatusStore } from '@/core/store';
import type { ICheckoutFulfillment, ICheckoutItem, ICheckoutRetailer } from '@/interfaces/cloud';
export declare function buildCheckoutItemStore(apiItem: ICheckoutItem, retailer: ICheckoutRetailer, fulfillment: ICheckoutFulfillment): ICheckoutItemStore;
export declare class CheckoutCommands extends BaseCommand {
    private readonly themeProvider;
    loadCheckout(): Promise<void>;
    partialLoadCheckout(cartId?: string): Promise<void>;
    toggleIsGift(): Promise<void>;
    toggleBillingSameAsShipping(): Promise<void>;
    toggleMarketingPreferences(fieldName: 'canEmail' | 'canSms'): Promise<void>;
    getPaymentSession(): Promise<void>;
    confirmPaymentSession(confirmationTokenId: string, setupIntentId: string): Promise<void>;
    applyPromoCode(code: string): Promise<void>;
    removePromoCode(): Promise<void>;
    applyGiftCard(code?: string): Promise<void>;
    removeGiftCard(code: string): Promise<void>;
    updateCustomerInfo(fieldName: string, fieldValue: string): Promise<void>;
    updateBillingInfo(fieldName: string, fieldValue: string): Promise<void>;
    updateGiftInfo(fieldName: string, fieldValue: string): Promise<void>;
    private validateAndUpdateFormStatus;
    private validateCustomerInfo;
    private validateGiftInfo;
    private validateBillingInfo;
    checkoutComplete(): Promise<void>;
    prepareCheckout(): Promise<void>;
    startPreparingCheckoutSubmit(): Promise<void>;
    private dataForCheckoutPrepare;
    rerenderCheckout(): void;
    focusFirstInvalidField(): Promise<void>;
    private getLocationFromAddress;
    /**
     * Build item update with conditional engraving
     */
    private buildItemUpdate;
    updateCheckoutItemQuantity(itemId: string, delta: number): Promise<void>;
    /**
     * Remove item - sync items + targeted cleanup + promo code
     */
    removeItem(itemId: string): Promise<void>;
    /**
     * Update tips based on percentage selection
     */
    updateTips(percentage: number): Promise<void>;
    /**
     * Update tip for individual fulfillment
     */
    updateFulfillmentTip(fulfillmentId: string, tipAmount: number): Promise<void>;
    /**
     * Remove tip from fulfillment
     */
    removeFulfillmentTip(fulfillmentId: string): Promise<void>;
    /**
     * Helper method to update store from checkout response
     * (extracted from your existing loadCheckout method)
     */
    private updateStoreFromCheckoutResponse;
    /**
     * Update Stripe form status
     */
    updateStripeFormStatus(status: Partial<ICheckoutStripeFormStatusStore>): Promise<void>;
    /**
     * remove checkout error
     */
    removeCheckoutError(): Promise<void>;
    updateDeliveryInstructions(instructions: string): Promise<void>;
}
