import { CartDTO, CartTypes, Context, DAL, FindConfig, ICartModuleService, InferEntityType, InternalModuleDeclaration, ModulesSdkTypes } from "@medusajs/framework/types";
import { ModulesSdkUtils } from "@medusajs/framework/utils";
import { Address, Cart, LineItem, LineItemAdjustment, LineItemTaxLine, ShippingMethod, ShippingMethodAdjustment, ShippingMethodTaxLine } from "../models";
import { CreateLineItemDTO } from "../types";
type InjectedDependencies = {
    baseRepository: DAL.RepositoryService;
    cartService: ModulesSdkTypes.IMedusaInternalService<any>;
    addressService: ModulesSdkTypes.IMedusaInternalService<any>;
    lineItemService: ModulesSdkTypes.IMedusaInternalService<any>;
    shippingMethodAdjustmentService: ModulesSdkTypes.IMedusaInternalService<any>;
    shippingMethodService: ModulesSdkTypes.IMedusaInternalService<any>;
    lineItemAdjustmentService: ModulesSdkTypes.IMedusaInternalService<any>;
    lineItemTaxLineService: ModulesSdkTypes.IMedusaInternalService<any>;
    shippingMethodTaxLineService: ModulesSdkTypes.IMedusaInternalService<any>;
};
declare const CartModuleService_base: ModulesSdkUtils.MedusaServiceReturnType<{
    Cart: {
        dto: CartTypes.CartDTO;
    };
    CreditLine: {
        dto: CartTypes.CartCreditLineDTO;
    };
    Address: {
        dto: CartTypes.CartAddressDTO;
    };
    LineItem: {
        dto: CartTypes.CartLineItemDTO;
    };
    LineItemAdjustment: {
        dto: CartTypes.LineItemAdjustmentDTO;
    };
    LineItemTaxLine: {
        dto: CartTypes.LineItemTaxLineDTO;
    };
    ShippingMethod: {
        dto: CartTypes.CartShippingMethodDTO;
    };
    ShippingMethodAdjustment: {
        dto: CartTypes.ShippingMethodAdjustmentDTO;
    };
    ShippingMethodTaxLine: {
        dto: CartTypes.ShippingMethodTaxLineDTO;
    };
}>;
export default class CartModuleService extends CartModuleService_base implements ICartModuleService {
    protected readonly moduleDeclaration: InternalModuleDeclaration;
    protected baseRepository_: DAL.RepositoryService;
    protected cartService_: ModulesSdkTypes.IMedusaInternalService<InferEntityType<typeof Cart>>;
    protected addressService_: ModulesSdkTypes.IMedusaInternalService<InferEntityType<typeof Address>>;
    protected lineItemService_: ModulesSdkTypes.IMedusaInternalService<InferEntityType<typeof LineItem>>;
    protected shippingMethodAdjustmentService_: ModulesSdkTypes.IMedusaInternalService<InferEntityType<typeof ShippingMethodAdjustment>>;
    protected shippingMethodService_: ModulesSdkTypes.IMedusaInternalService<InferEntityType<typeof ShippingMethod>>;
    protected lineItemAdjustmentService_: ModulesSdkTypes.IMedusaInternalService<InferEntityType<typeof LineItemAdjustment>>;
    protected lineItemTaxLineService_: ModulesSdkTypes.IMedusaInternalService<InferEntityType<typeof LineItemTaxLine>>;
    protected shippingMethodTaxLineService_: ModulesSdkTypes.IMedusaInternalService<InferEntityType<typeof ShippingMethodTaxLine>>;
    constructor({ baseRepository, cartService, addressService, lineItemService, shippingMethodAdjustmentService, shippingMethodService, lineItemAdjustmentService, shippingMethodTaxLineService, lineItemTaxLineService, }: InjectedDependencies, moduleDeclaration: InternalModuleDeclaration);
    private shouldIncludeTotals;
    private addRelationsToCalculateTotals;
    retrieveCart(id: string, config?: FindConfig<any> | undefined, sharedContext?: Context | undefined): Promise<CartDTO>;
    listCarts(filters?: any, config?: FindConfig<any> | undefined, sharedContext?: Context | undefined): Promise<CartDTO[]>;
    listAndCountCarts(filters?: any, config?: FindConfig<any> | undefined, sharedContext?: Context | undefined): Promise<[CartDTO[], number]>;
    createCarts(data: CartTypes.CreateCartDTO[], sharedContext?: Context): Promise<CartTypes.CartDTO[]>;
    createCarts(data: CartTypes.CreateCartDTO, sharedContext?: Context): Promise<CartTypes.CartDTO>;
    protected createCarts_(data: CartTypes.CreateCartDTO[], sharedContext?: Context): Promise<InferEntityType<typeof Cart>[]>;
    updateCarts(data: CartTypes.UpdateCartDTO[]): Promise<CartTypes.CartDTO[]>;
    updateCarts(cartId: string, data: CartTypes.UpdateCartDataDTO, sharedContext?: Context): Promise<CartTypes.CartDTO>;
    updateCarts(selector: Partial<CartTypes.CartDTO>, data: CartTypes.UpdateCartDataDTO, sharedContext?: Context): Promise<CartTypes.CartDTO[]>;
    protected updateCarts_(dataOrIdOrSelector: CartTypes.UpdateCartDTO[] | string | Partial<CartTypes.CartDTO>, data?: CartTypes.UpdateCartDataDTO, sharedContext?: Context): Promise<{
        id: string;
        region_id: string | null;
        customer_id: string | null;
        sales_channel_id: string | null;
        email: string | null;
        currency_code: string;
        locale: string | null;
        metadata: Record<string, unknown> | null;
        completed_at: Date | null;
        shipping_address: {
            id: string;
            customer_id: string | null;
            company: string | null;
            first_name: string | null;
            last_name: string | null;
            address_1: string | null;
            address_2: string | null;
            city: string | null;
            country_code: string | null;
            province: string | null;
            postal_code: string | null;
            phone: string | null;
            metadata: Record<string, unknown> | null;
            created_at: Date;
            updated_at: Date;
            deleted_at: Date | null;
        };
        billing_address: {
            id: string;
            customer_id: string | null;
            company: string | null;
            first_name: string | null;
            last_name: string | null;
            address_1: string | null;
            address_2: string | null;
            city: string | null;
            country_code: string | null;
            province: string | null;
            postal_code: string | null;
            phone: string | null;
            metadata: Record<string, unknown> | null;
            created_at: Date;
            updated_at: Date;
            deleted_at: Date | null;
        };
        items: {
            id: string;
            title: string;
            subtitle: string | null;
            thumbnail: string | null;
            quantity: number;
            variant_id: string | null;
            product_id: string | null;
            product_title: string | null;
            product_description: string | null;
            product_subtitle: string | null;
            product_type: string | null;
            product_type_id: string | null;
            product_collection: string | null;
            product_handle: string | null;
            variant_sku: string | null;
            variant_barcode: string | null;
            variant_title: string | null;
            variant_option_values: Record<string, unknown> | null;
            requires_shipping: boolean;
            is_discountable: boolean;
            is_giftcard: boolean;
            is_tax_inclusive: boolean;
            is_custom_price: boolean;
            compare_at_unit_price: number | null;
            unit_price: number;
            metadata: Record<string, unknown> | null;
            adjustments: {
                id: string;
                description: string | null;
                code: string | null;
                amount: number;
                is_tax_inclusive: boolean;
                provider_id: string | null;
                promotion_id: string | null;
                metadata: Record<string, unknown> | null;
                item: /*elided*/ any;
                raw_amount: Record<string, unknown>;
                created_at: Date;
                updated_at: Date;
                deleted_at: Date | null;
                item_id: string;
            }[];
            tax_lines: {
                id: string;
                description: string | null;
                code: string;
                rate: number;
                provider_id: string | null;
                metadata: Record<string, unknown> | null;
                tax_rate_id: string | null;
                item: /*elided*/ any;
                created_at: Date;
                updated_at: Date;
                deleted_at: Date | null;
                item_id: string;
            }[];
            cart: /*elided*/ any;
            raw_compare_at_unit_price: Record<string, unknown> | null;
            raw_unit_price: Record<string, unknown>;
            created_at: Date;
            updated_at: Date;
            deleted_at: Date | null;
            cart_id: string;
        }[];
        credit_lines: {
            id: string;
            cart: /*elided*/ any;
            reference: string | null;
            reference_id: string | null;
            amount: number;
            raw_amount: Record<string, unknown>;
            metadata: Record<string, unknown> | null;
            created_at: Date;
            updated_at: Date;
            deleted_at: Date | null;
            cart_id: string;
        }[];
        shipping_methods: {
            id: string;
            name: string;
            description: Record<string, unknown> | null;
            amount: number;
            is_tax_inclusive: boolean;
            shipping_option_id: string | null;
            data: Record<string, unknown> | null;
            metadata: Record<string, unknown> | null;
            cart: /*elided*/ any;
            tax_lines: {
                id: string;
                description: string | null;
                code: string;
                rate: number;
                provider_id: string | null;
                tax_rate_id: string | null;
                metadata: Record<string, unknown> | null;
                shipping_method: /*elided*/ any;
                created_at: Date;
                updated_at: Date;
                deleted_at: Date | null;
                shipping_method_id: string;
            }[];
            adjustments: {
                id: string;
                description: string | null;
                code: string | null;
                amount: number;
                provider_id: string | null;
                metadata: Record<string, unknown> | null;
                promotion_id: string | null;
                shipping_method: /*elided*/ any;
                raw_amount: Record<string, unknown>;
                created_at: Date;
                updated_at: Date;
                deleted_at: Date | null;
                shipping_method_id: string;
            }[];
            raw_amount: Record<string, unknown>;
            created_at: Date;
            updated_at: Date;
            deleted_at: Date | null;
            cart_id: string;
        }[];
        created_at: Date;
        updated_at: Date;
        deleted_at: Date | null;
        shipping_address_id: string | null;
        billing_address_id: string | null;
    }[]>;
    updateShippingMethods(data: CartTypes.UpdateShippingMethodDTO[], sharedContext?: Context): Promise<CartTypes.CartShippingMethodDTO[]>;
    addLineItems(data: CartTypes.CreateLineItemForCartDTO): Promise<CartTypes.CartLineItemDTO[]>;
    addLineItems(data: CartTypes.CreateLineItemForCartDTO[]): Promise<CartTypes.CartLineItemDTO[]>;
    addLineItems(cartId: string, items: CartTypes.CreateLineItemDTO[], sharedContext?: Context): Promise<CartTypes.CartLineItemDTO[]>;
    protected addLineItems_(cartId: string, items: CartTypes.CreateLineItemDTO[], sharedContext?: Context): Promise<InferEntityType<typeof LineItem>[]>;
    protected addLineItemsBulk_(data: CreateLineItemDTO[], sharedContext?: Context): Promise<InferEntityType<typeof LineItem>[]>;
    updateLineItems(data: CartTypes.UpdateLineItemWithSelectorDTO[]): Promise<CartTypes.CartLineItemDTO[]>;
    updateLineItems(data: (Partial<CartTypes.UpdateLineItemDTO> & {
        id: string;
    })[]): Promise<CartTypes.CartLineItemDTO[]>;
    updateLineItems(selector: Partial<CartTypes.CartLineItemDTO>, data: CartTypes.UpdateLineItemDTO, sharedContext?: Context): Promise<CartTypes.CartLineItemDTO[]>;
    updateLineItems(lineItemId: string, data: Partial<CartTypes.UpdateLineItemDTO>, sharedContext?: Context): Promise<CartTypes.CartLineItemDTO>;
    protected updateLineItem_(lineItemId: string, data: Partial<CartTypes.UpdateLineItemDTO>, sharedContext?: Context): Promise<InferEntityType<typeof LineItem>>;
    protected updateLineItemsWithSelector_(updates: CartTypes.UpdateLineItemWithSelectorDTO[], sharedContext?: Context): Promise<InferEntityType<typeof LineItem>[]>;
    createAddresses(data: CartTypes.CreateAddressDTO, sharedContext?: Context): Promise<CartTypes.CartAddressDTO>;
    createAddresses(data: CartTypes.CreateAddressDTO[], sharedContext?: Context): Promise<CartTypes.CartAddressDTO[]>;
    protected createAddresses_(data: CartTypes.CreateAddressDTO[], sharedContext?: Context): Promise<{
        id: string;
        customer_id: string | null;
        company: string | null;
        first_name: string | null;
        last_name: string | null;
        address_1: string | null;
        address_2: string | null;
        city: string | null;
        country_code: string | null;
        province: string | null;
        postal_code: string | null;
        phone: string | null;
        metadata: Record<string, unknown> | null;
        created_at: Date;
        updated_at: Date;
        deleted_at: Date | null;
    }[]>;
    updateAddresses(data: CartTypes.UpdateAddressDTO, sharedContext?: Context): Promise<CartTypes.CartAddressDTO>;
    updateAddresses(data: CartTypes.UpdateAddressDTO[], sharedContext?: Context): Promise<CartTypes.CartAddressDTO[]>;
    protected updateAddresses_(data: CartTypes.UpdateAddressDTO[], sharedContext?: Context): Promise<{
        id: string;
        customer_id: string | null;
        company: string | null;
        first_name: string | null;
        last_name: string | null;
        address_1: string | null;
        address_2: string | null;
        city: string | null;
        country_code: string | null;
        province: string | null;
        postal_code: string | null;
        phone: string | null;
        metadata: Record<string, unknown> | null;
        created_at: Date;
        updated_at: Date;
        deleted_at: Date | null;
    }[]>;
    addShippingMethods(data: CartTypes.CreateShippingMethodDTO): Promise<CartTypes.CartShippingMethodDTO>;
    addShippingMethods(data: CartTypes.CreateShippingMethodDTO[]): Promise<CartTypes.CartShippingMethodDTO[]>;
    addShippingMethods(cartId: string, methods: CartTypes.CreateShippingMethodForSingleCartDTO[], sharedContext?: Context): Promise<CartTypes.CartShippingMethodDTO[]>;
    protected addShippingMethods_(cartId: string, data: CartTypes.CreateShippingMethodForSingleCartDTO[], sharedContext?: Context): Promise<InferEntityType<typeof ShippingMethod>[]>;
    protected addShippingMethodsBulk_(data: CartTypes.CreateShippingMethodDTO[], sharedContext?: Context): Promise<InferEntityType<typeof ShippingMethod>[]>;
    addLineItemAdjustments(adjustments: CartTypes.CreateLineItemAdjustmentDTO[]): Promise<CartTypes.LineItemAdjustmentDTO[]>;
    addLineItemAdjustments(adjustment: CartTypes.CreateLineItemAdjustmentDTO): Promise<CartTypes.LineItemAdjustmentDTO[]>;
    addLineItemAdjustments(cartId: string, adjustments: CartTypes.CreateLineItemAdjustmentDTO[], sharedContext?: Context): Promise<CartTypes.LineItemAdjustmentDTO[]>;
    protected addLineItemAdjustments_(cartIdOrData: string | CartTypes.CreateLineItemAdjustmentDTO[] | CartTypes.CreateLineItemAdjustmentDTO, adjustments?: CartTypes.CreateLineItemAdjustmentDTO[], sharedContext?: Context): Promise<InferEntityType<typeof LineItemAdjustment>[]>;
    upsertLineItemTaxLines(taxLines: (CartTypes.CreateLineItemTaxLineDTO | CartTypes.UpdateLineItemTaxLineDTO)[], sharedContext?: Context): Promise<CartTypes.LineItemTaxLineDTO[]>;
    protected upsertLineItemTaxLines_(taxLines: (CartTypes.CreateLineItemTaxLineDTO | CartTypes.UpdateLineItemTaxLineDTO)[], sharedContext?: Context): Promise<InferEntityType<typeof LineItemTaxLine>[]>;
    upsertLineItemAdjustments(adjustments: (CartTypes.CreateLineItemAdjustmentDTO | CartTypes.UpdateLineItemAdjustmentDTO)[], sharedContext?: Context): Promise<CartTypes.LineItemAdjustmentDTO[]>;
    protected upsertLineItemAdjustments_(adjustments: (CartTypes.CreateLineItemAdjustmentDTO | CartTypes.UpdateLineItemAdjustmentDTO)[], sharedContext?: Context): Promise<InferEntityType<typeof LineItemAdjustment>[]>;
    upsertShippingMethodTaxLines(taxLines: (CartTypes.CreateShippingMethodTaxLineDTO | CartTypes.UpdateShippingMethodTaxLineDTO)[], sharedContext?: Context): Promise<CartTypes.ShippingMethodTaxLineDTO[]>;
    protected upsertShippingMethodTaxLines_(taxLines: (CartTypes.CreateShippingMethodTaxLineDTO | CartTypes.UpdateShippingMethodTaxLineDTO)[], sharedContext?: Context): Promise<InferEntityType<typeof ShippingMethodTaxLine>[]>;
    upsertShippingMethodAdjustments(adjustments: (CartTypes.CreateShippingMethodAdjustmentDTO | CartTypes.UpdateShippingMethodAdjustmentDTO)[], sharedContext?: Context): Promise<CartTypes.ShippingMethodAdjustmentDTO[]>;
    protected upsertShippingMethodAdjustments_(adjustments: (CartTypes.CreateShippingMethodAdjustmentDTO | CartTypes.UpdateShippingMethodAdjustmentDTO)[], sharedContext?: Context): Promise<InferEntityType<typeof ShippingMethodAdjustment>[]>;
    setLineItemAdjustments(cartId: string, adjustments: (CartTypes.CreateLineItemAdjustmentDTO | CartTypes.UpdateLineItemAdjustmentDTO)[], sharedContext?: Context): Promise<CartTypes.LineItemAdjustmentDTO[]>;
    protected setLineItemAdjustments_(cartId: string, adjustments: (CartTypes.CreateLineItemAdjustmentDTO | CartTypes.UpdateLineItemAdjustmentDTO)[], sharedContext?: Context): Promise<InferEntityType<typeof LineItemAdjustment>[]>;
    setShippingMethodAdjustments(cartId: string, adjustments: (CartTypes.CreateShippingMethodAdjustmentDTO | CartTypes.UpdateShippingMethodAdjustmentDTO)[], sharedContext?: Context): Promise<CartTypes.ShippingMethodAdjustmentDTO[]>;
    protected setShippingMethodAdjustments_(cartId: string, adjustments: (CartTypes.CreateShippingMethodAdjustmentDTO | CartTypes.UpdateShippingMethodAdjustmentDTO)[], sharedContext?: Context): Promise<InferEntityType<typeof ShippingMethodAdjustment>[]>;
    addShippingMethodAdjustments(adjustments: CartTypes.CreateShippingMethodAdjustmentDTO[]): Promise<CartTypes.ShippingMethodAdjustmentDTO[]>;
    addShippingMethodAdjustments(adjustment: CartTypes.CreateShippingMethodAdjustmentDTO): Promise<CartTypes.ShippingMethodAdjustmentDTO>;
    addShippingMethodAdjustments(cartId: string, adjustments: CartTypes.CreateShippingMethodAdjustmentDTO[], sharedContext?: Context): Promise<CartTypes.ShippingMethodAdjustmentDTO[]>;
    protected addShippingMethodAdjustments_(cartIdOrData: string | CartTypes.CreateShippingMethodAdjustmentDTO[] | CartTypes.CreateShippingMethodAdjustmentDTO, adjustments?: CartTypes.CreateShippingMethodAdjustmentDTO[], sharedContext?: Context): Promise<InferEntityType<typeof ShippingMethodAdjustment>[] | InferEntityType<typeof ShippingMethodAdjustment>>;
    addLineItemTaxLines(taxLines: CartTypes.CreateLineItemTaxLineDTO[]): Promise<CartTypes.LineItemTaxLineDTO[]>;
    addLineItemTaxLines(taxLine: CartTypes.CreateLineItemTaxLineDTO): Promise<CartTypes.LineItemTaxLineDTO>;
    addLineItemTaxLines(cartId: string, taxLines: CartTypes.CreateLineItemTaxLineDTO[] | CartTypes.CreateShippingMethodTaxLineDTO, sharedContext?: Context): Promise<CartTypes.LineItemTaxLineDTO[]>;
    protected addLineItemTaxLines_(cartIdOrData: string | CartTypes.CreateLineItemTaxLineDTO[] | CartTypes.CreateLineItemTaxLineDTO, taxLines?: CartTypes.CreateLineItemTaxLineDTO[] | CartTypes.CreateLineItemTaxLineDTO, sharedContext?: Context): Promise<InferEntityType<typeof LineItemTaxLine>[] | InferEntityType<typeof LineItemTaxLine>>;
    setLineItemTaxLines(cartId: string, taxLines: (CartTypes.CreateLineItemTaxLineDTO | CartTypes.UpdateLineItemTaxLineDTO)[], sharedContext?: Context): Promise<CartTypes.LineItemTaxLineDTO[]>;
    protected setLineItemTaxLines_(cartId: string, taxLines: (CartTypes.CreateLineItemTaxLineDTO | CartTypes.UpdateLineItemTaxLineDTO)[], sharedContext?: Context): Promise<InferEntityType<typeof LineItemTaxLine>[]>;
    addShippingMethodTaxLines(taxLines: CartTypes.CreateShippingMethodTaxLineDTO[]): Promise<CartTypes.ShippingMethodTaxLineDTO[]>;
    addShippingMethodTaxLines(taxLine: CartTypes.CreateShippingMethodTaxLineDTO): Promise<CartTypes.ShippingMethodTaxLineDTO>;
    addShippingMethodTaxLines(cartId: string, taxLines: CartTypes.CreateShippingMethodTaxLineDTO[] | CartTypes.CreateShippingMethodTaxLineDTO, sharedContext?: Context): Promise<CartTypes.ShippingMethodTaxLineDTO[]>;
    protected addShippingMethodTaxLines_(cartIdOrData: string | CartTypes.CreateShippingMethodTaxLineDTO[] | CartTypes.CreateShippingMethodTaxLineDTO, taxLines?: CartTypes.CreateShippingMethodTaxLineDTO[] | CartTypes.CreateShippingMethodTaxLineDTO, sharedContext?: Context): Promise<InferEntityType<typeof ShippingMethodTaxLine>[] | InferEntityType<typeof ShippingMethodTaxLine>>;
    setShippingMethodTaxLines(cartId: string, taxLines: (CartTypes.CreateShippingMethodTaxLineDTO | CartTypes.UpdateShippingMethodTaxLineDTO)[], sharedContext?: Context): Promise<CartTypes.ShippingMethodTaxLineDTO[]>;
    protected setShippingMethodTaxLines_(cartId: string, taxLines: (CartTypes.CreateShippingMethodTaxLineDTO | CartTypes.UpdateShippingMethodTaxLineDTO)[], sharedContext?: Context): Promise<InferEntityType<typeof ShippingMethodTaxLine>[]>;
}
export {};
//# sourceMappingURL=cart-module.d.ts.map