import { PrismaService } from '../../../prisma/prisma.service';
export declare class CartsService {
    private readonly prisma;
    constructor(prisma: PrismaService);
    getOrCreateCart(businessId: string, whatsappNumber: string, customerId?: string): Promise<{
        items: ({
            product: {
                id: string;
                name: string;
                status: string;
                createdAt: Date;
                updatedAt: Date;
                businessId: string;
                currency: string;
                sku: string | null;
                sourceSystem: string;
                externalProductId: string;
                description: string | null;
                price: number;
                stockQuantity: number | null;
                stockStatus: string;
                imageUrl: string | null;
                lastSyncedAt: Date;
            };
            variant: {
                id: string;
                name: string | null;
                createdAt: Date;
                updatedAt: Date;
                sku: string | null;
                price: number;
                stockQuantity: number | null;
                stockStatus: string;
                productId: string;
                externalVariantId: string;
                attributesJson: string | null;
            } | null;
        } & {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            productId: string;
            variantId: string | null;
            quantity: number;
            unitPrice: number;
            lineTotal: number;
            cartId: string;
        })[];
    } & {
        id: string;
        status: string;
        createdAt: Date;
        updatedAt: Date;
        businessId: string;
        currency: string;
        totalAmount: number;
        customerId: string | null;
        whatsappNumber: string;
        expiresAt: Date | null;
    }>;
    addToCart(businessId: string, whatsappNumber: string, productId: string, quantity: number, variantId?: string): Promise<{
        items: ({
            product: {
                id: string;
                name: string;
                status: string;
                createdAt: Date;
                updatedAt: Date;
                businessId: string;
                currency: string;
                sku: string | null;
                sourceSystem: string;
                externalProductId: string;
                description: string | null;
                price: number;
                stockQuantity: number | null;
                stockStatus: string;
                imageUrl: string | null;
                lastSyncedAt: Date;
            };
            variant: {
                id: string;
                name: string | null;
                createdAt: Date;
                updatedAt: Date;
                sku: string | null;
                price: number;
                stockQuantity: number | null;
                stockStatus: string;
                productId: string;
                externalVariantId: string;
                attributesJson: string | null;
            } | null;
        } & {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            productId: string;
            variantId: string | null;
            quantity: number;
            unitPrice: number;
            lineTotal: number;
            cartId: string;
        })[];
    } & {
        id: string;
        status: string;
        createdAt: Date;
        updatedAt: Date;
        businessId: string;
        currency: string;
        totalAmount: number;
        customerId: string | null;
        whatsappNumber: string;
        expiresAt: Date | null;
    }>;
    updateItemQuantity(cartId: string, itemId: string, quantity: number): Promise<{
        items: ({
            product: {
                id: string;
                name: string;
                status: string;
                createdAt: Date;
                updatedAt: Date;
                businessId: string;
                currency: string;
                sku: string | null;
                sourceSystem: string;
                externalProductId: string;
                description: string | null;
                price: number;
                stockQuantity: number | null;
                stockStatus: string;
                imageUrl: string | null;
                lastSyncedAt: Date;
            };
            variant: {
                id: string;
                name: string | null;
                createdAt: Date;
                updatedAt: Date;
                sku: string | null;
                price: number;
                stockQuantity: number | null;
                stockStatus: string;
                productId: string;
                externalVariantId: string;
                attributesJson: string | null;
            } | null;
        } & {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            productId: string;
            variantId: string | null;
            quantity: number;
            unitPrice: number;
            lineTotal: number;
            cartId: string;
        })[];
    } & {
        id: string;
        status: string;
        createdAt: Date;
        updatedAt: Date;
        businessId: string;
        currency: string;
        totalAmount: number;
        customerId: string | null;
        whatsappNumber: string;
        expiresAt: Date | null;
    }>;
    removeItem(cartId: string, itemId: string): Promise<{
        items: ({
            product: {
                id: string;
                name: string;
                status: string;
                createdAt: Date;
                updatedAt: Date;
                businessId: string;
                currency: string;
                sku: string | null;
                sourceSystem: string;
                externalProductId: string;
                description: string | null;
                price: number;
                stockQuantity: number | null;
                stockStatus: string;
                imageUrl: string | null;
                lastSyncedAt: Date;
            };
            variant: {
                id: string;
                name: string | null;
                createdAt: Date;
                updatedAt: Date;
                sku: string | null;
                price: number;
                stockQuantity: number | null;
                stockStatus: string;
                productId: string;
                externalVariantId: string;
                attributesJson: string | null;
            } | null;
        } & {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            productId: string;
            variantId: string | null;
            quantity: number;
            unitPrice: number;
            lineTotal: number;
            cartId: string;
        })[];
    } & {
        id: string;
        status: string;
        createdAt: Date;
        updatedAt: Date;
        businessId: string;
        currency: string;
        totalAmount: number;
        customerId: string | null;
        whatsappNumber: string;
        expiresAt: Date | null;
    }>;
    clearCart(cartId: string): Promise<{
        items: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            productId: string;
            variantId: string | null;
            quantity: number;
            unitPrice: number;
            lineTotal: number;
            cartId: string;
        }[];
    } & {
        id: string;
        status: string;
        createdAt: Date;
        updatedAt: Date;
        businessId: string;
        currency: string;
        totalAmount: number;
        customerId: string | null;
        whatsappNumber: string;
        expiresAt: Date | null;
    }>;
    private recalculateCart;
}
