import { Observable } from "rxjs"; import type { CustomerService } from './customer.service'; import type { CheckoutService } from "./checkout.service"; import type { LastOrder } from "@src/types/types"; import type { ShippingAddress } from "@src/models/addresses-models"; export declare class CartService { #private; readonly change$: Observable; get count(): number; get country(): Country; get discounts(): CartDiscounts; get items(): Array; get lastOrder(): LastOrder; get numItems(): number; get status(): CartStatus; get taxAmount(): number; get taxBase(): number; get total(): number; get units(): number; get uuid(): string; constructor(); cartWeight(): number; private changeCart; discountCode(code: string): Observable; discountCodeRemove(discountId: number): Observable; private getDiscounts; private restoreStorage; private saveStorage; private updateCart; clear(): void; clearOrder(lastOrderId: number, lastOrderHash: string, purchaseEvent: boolean): void; close(): void; private getItems; open(fullScreen: boolean): void; private purchaseEvent; setServices(customer: CustomerService): void; add(data: CartAddItem): void; orderSummary(id: number, hash: string): Observable; addFromTarget(target: HTMLElement): void; private setStatus; cartToOrder(checkoutService: CheckoutService, customer: CustomerService): Observable; removeItem(item: CartItem): void; private addItemCart; setCountryData(country: Country): void; private updateShippingData; private cartUpdate; update(): void; updateShippingAddress(shippingAddress: ShippingAddress): Observable; updateItem(item: CartItem, quantity: number): void; } export declare function cartProxy(cart: CartService): { count: number; country: { id: number; iso: string; name: string; }; numItems: number; taxAmount: number; taxBase: number; total: number; units: number; add: (data: CartAddItem) => void; clear: () => void; close: () => void; items: () => CartItem[]; open: (fullScreen: boolean) => void; removeItem: (item: CartItem) => void; setCountryIso: (iso: string) => Promise; subscribe: (cb: (cart: CartProxy) => void) => () => void; updateItem: (item: CartItem, quantity: number) => void; };