import { PrismaService } from '../../../prisma/prisma.service';
import { ConnectorFactory } from '../../connectors/connector.factory';
import { PaymentFactory } from '../../payments/payment.factory';
import { PaymentPollingService } from '../../payments/payment-polling.service';
import { BusinessService } from '../../business/business.service';
import { CartsService } from './carts.service';
import { OrderEventsService } from './order-events.service';
export declare class OrdersService {
    private readonly prisma;
    private readonly connectorFactory;
    private readonly paymentFactory;
    private readonly paymentPollingService;
    private readonly businessService;
    private readonly cartsService;
    private readonly orderEventsService;
    private readonly logger;
    constructor(prisma: PrismaService, connectorFactory: ConnectorFactory, paymentFactory: PaymentFactory, paymentPollingService: PaymentPollingService, businessService: BusinessService, cartsService: CartsService, orderEventsService: OrderEventsService);
    listOrders(businessId: string): Promise<({
        customer: {
            email: string | null;
            id: string;
            name: string | null;
            createdAt: Date;
            updatedAt: Date;
            businessId: string;
            whatsappNumber: string;
            externalCustomerId: string | null;
        };
        payments: {
            id: string;
            status: string;
            createdAt: Date;
            updatedAt: Date;
            businessId: string;
            paymentReference: string;
            amount: number;
            currency: string;
            gateway: string;
            gatewayReference: string | null;
            paymentLink: string | null;
            orderId: string;
            rawResponseJson: string | null;
        }[];
        items: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            orderId: string;
            externalProductId: string | null;
            productId: string;
            externalVariantId: string | null;
            variantId: string | null;
            productName: string;
            quantity: number;
            unitPrice: number;
            lineTotal: number;
        }[];
    } & {
        id: string;
        status: string;
        createdAt: Date;
        updatedAt: Date;
        businessId: string;
        currency: string;
        externalOrderId: string | null;
        orderNumber: string;
        customerName: string;
        customerPhone: string;
        totalAmount: number;
        deliveryAddress: string | null;
        sourceSystem: string;
        customerId: string;
        sourceChannel: string;
        paymentStatus: string;
        fulfilmentStatus: string;
        deliveryMethod: string | null;
        deliveryLat: number | null;
        deliveryLng: number | null;
    })[]>;
    getOrder(orderId: string): Promise<({
        customer: {
            email: string | null;
            id: string;
            name: string | null;
            createdAt: Date;
            updatedAt: Date;
            businessId: string;
            whatsappNumber: string;
            externalCustomerId: string | null;
        };
        payments: {
            id: string;
            status: string;
            createdAt: Date;
            updatedAt: Date;
            businessId: string;
            paymentReference: string;
            amount: number;
            currency: string;
            gateway: string;
            gatewayReference: string | null;
            paymentLink: string | null;
            orderId: string;
            rawResponseJson: string | null;
        }[];
        items: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            orderId: string;
            externalProductId: string | null;
            productId: string;
            externalVariantId: string | null;
            variantId: string | null;
            productName: string;
            quantity: number;
            unitPrice: number;
            lineTotal: number;
        }[];
    } & {
        id: string;
        status: string;
        createdAt: Date;
        updatedAt: Date;
        businessId: string;
        currency: string;
        externalOrderId: string | null;
        orderNumber: string;
        customerName: string;
        customerPhone: string;
        totalAmount: number;
        deliveryAddress: string | null;
        sourceSystem: string;
        customerId: string;
        sourceChannel: string;
        paymentStatus: string;
        fulfilmentStatus: string;
        deliveryMethod: string | null;
        deliveryLat: number | null;
        deliveryLng: number | null;
    }) | null>;
    createOrderFromCart(businessId: string, whatsappNumber: string, customerName: string, deliveryMethod: string, deliveryAddress?: string, deliveryLat?: number, deliveryLng?: number): Promise<{
        orderId: string;
        orderNumber: string;
        externalOrderNumber: string;
        totalAmount: number;
        currency: string;
        paymentLink: string;
        paymentReference: string;
    }>;
    confirmPayment(paymentReference: string, status: 'SUCCESS' | 'FAILED', gatewayReference?: string): Promise<{
        customer: {
            email: string | null;
            id: string;
            name: string | null;
            createdAt: Date;
            updatedAt: Date;
            businessId: string;
            whatsappNumber: string;
            externalCustomerId: string | null;
        };
    } & {
        id: string;
        status: string;
        createdAt: Date;
        updatedAt: Date;
        businessId: string;
        currency: string;
        externalOrderId: string | null;
        orderNumber: string;
        customerName: string;
        customerPhone: string;
        totalAmount: number;
        deliveryAddress: string | null;
        sourceSystem: string;
        customerId: string;
        sourceChannel: string;
        paymentStatus: string;
        fulfilmentStatus: string;
        deliveryMethod: string | null;
        deliveryLat: number | null;
        deliveryLng: number | null;
    }>;
    verifyAndConfirmPayment(paymentReference: string): Promise<{
        id: string;
        status: string;
        createdAt: Date;
        updatedAt: Date;
        businessId: string;
        currency: string;
        externalOrderId: string | null;
        orderNumber: string;
        customerName: string;
        customerPhone: string;
        totalAmount: number;
        deliveryAddress: string | null;
        sourceSystem: string;
        customerId: string;
        sourceChannel: string;
        paymentStatus: string;
        fulfilmentStatus: string;
        deliveryMethod: string | null;
        deliveryLat: number | null;
        deliveryLng: number | null;
    } | null>;
    initiateSeamlessPayment(businessId: string, orderId: string, whatsappNumber: string, ecocashNumber: string): Promise<{
        paymentReference: string;
        amount: number;
        currency: string;
    }>;
    updateOrderStatus(businessId: string, orderId: string, status: string): Promise<{
        id: string;
        status: string;
        createdAt: Date;
        updatedAt: Date;
        businessId: string;
        currency: string;
        externalOrderId: string | null;
        orderNumber: string;
        customerName: string;
        customerPhone: string;
        totalAmount: number;
        deliveryAddress: string | null;
        sourceSystem: string;
        customerId: string;
        sourceChannel: string;
        paymentStatus: string;
        fulfilmentStatus: string;
        deliveryMethod: string | null;
        deliveryLat: number | null;
        deliveryLng: number | null;
    }>;
    listCustomers(businessId: string): Promise<{
        id: string;
        name: string;
        whatsappNumber: string;
        createdAt: Date;
        totalOrders: number;
        totalSpent: number;
        orders: {
            orderNumber: string;
            totalAmount: number;
            status: string;
            paymentStatus: string;
            createdAt: Date;
        }[];
    }[]>;
    private syncOrderToWooCommerce;
    private syncPaymentStatusToWooCommerce;
    private syncStockToIntegration;
    private resolveGoogleMapsCoordinates;
}
