import { CreateOrderDto } from './dto/create-order.dto';
import { UpdateOrderStatusDto } from './dto/update-order-status.dto';
import { PrismaService } from '../prisma/prisma.service';
import { CouponsService } from '../coupons/coupons.service';
import { NotificationsService } from '../notifications/notifications.service';
import { InventoryService } from '../inventory/inventory.service';
export declare class OrdersService {
    private prisma;
    private couponsService;
    private notificationsService;
    private inventoryService;
    constructor(prisma: PrismaService, couponsService: CouponsService, notificationsService: NotificationsService, inventoryService: InventoryService);
    create(createOrderDto: CreateOrderDto, customerId?: string): Promise<{
        items: {
            id: string;
            productVariantId: string;
            quantity: number;
            sku: string;
            price: import("@prisma/client/runtime/library").Decimal;
            productName: string;
            total: import("@prisma/client/runtime/library").Decimal;
            orderId: string;
        }[];
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        customerName: string;
        customerEmail: string;
        customerPhone: string;
        shippingAddress: import("@prisma/client/runtime/library").JsonValue;
        billingAddress: import("@prisma/client/runtime/library").JsonValue | null;
        discount: import("@prisma/client/runtime/library").Decimal;
        status: import(".prisma/client").$Enums.OrderStatus;
        orderNumber: string;
        customerId: string | null;
        subTotal: import("@prisma/client/runtime/library").Decimal;
        tax: import("@prisma/client/runtime/library").Decimal;
        shippingCost: import("@prisma/client/runtime/library").Decimal;
        total: import("@prisma/client/runtime/library").Decimal;
        paymentStatus: import(".prisma/client").$Enums.PaymentStatus;
    }>;
    findAll(): import(".prisma/client").Prisma.PrismaPromise<({
        shipment: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            status: string;
            provider: string;
            orderId: string;
            trackingCode: string | null;
            consignmentId: string | null;
            shippingFee: import("@prisma/client/runtime/library").Decimal | null;
            providerResponse: import("@prisma/client/runtime/library").JsonValue | null;
        };
        items: {
            id: string;
            productVariantId: string;
            quantity: number;
            sku: string;
            price: import("@prisma/client/runtime/library").Decimal;
            productName: string;
            total: import("@prisma/client/runtime/library").Decimal;
            orderId: string;
        }[];
        payments: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            status: import(".prisma/client").$Enums.PaymentStatus;
            method: string;
            orderId: string;
            amount: import("@prisma/client/runtime/library").Decimal;
            transactionId: string | null;
            gatewayResponse: import("@prisma/client/runtime/library").JsonValue | null;
        }[];
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        customerName: string;
        customerEmail: string;
        customerPhone: string;
        shippingAddress: import("@prisma/client/runtime/library").JsonValue;
        billingAddress: import("@prisma/client/runtime/library").JsonValue | null;
        discount: import("@prisma/client/runtime/library").Decimal;
        status: import(".prisma/client").$Enums.OrderStatus;
        orderNumber: string;
        customerId: string | null;
        subTotal: import("@prisma/client/runtime/library").Decimal;
        tax: import("@prisma/client/runtime/library").Decimal;
        shippingCost: import("@prisma/client/runtime/library").Decimal;
        total: import("@prisma/client/runtime/library").Decimal;
        paymentStatus: import(".prisma/client").$Enums.PaymentStatus;
    })[]>;
    findOne(id: string): Promise<{
        shipment: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            status: string;
            provider: string;
            orderId: string;
            trackingCode: string | null;
            consignmentId: string | null;
            shippingFee: import("@prisma/client/runtime/library").Decimal | null;
            providerResponse: import("@prisma/client/runtime/library").JsonValue | null;
        };
        items: {
            id: string;
            productVariantId: string;
            quantity: number;
            sku: string;
            price: import("@prisma/client/runtime/library").Decimal;
            productName: string;
            total: import("@prisma/client/runtime/library").Decimal;
            orderId: string;
        }[];
        payments: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            status: import(".prisma/client").$Enums.PaymentStatus;
            method: string;
            orderId: string;
            amount: import("@prisma/client/runtime/library").Decimal;
            transactionId: string | null;
            gatewayResponse: import("@prisma/client/runtime/library").JsonValue | null;
        }[];
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        customerName: string;
        customerEmail: string;
        customerPhone: string;
        shippingAddress: import("@prisma/client/runtime/library").JsonValue;
        billingAddress: import("@prisma/client/runtime/library").JsonValue | null;
        discount: import("@prisma/client/runtime/library").Decimal;
        status: import(".prisma/client").$Enums.OrderStatus;
        orderNumber: string;
        customerId: string | null;
        subTotal: import("@prisma/client/runtime/library").Decimal;
        tax: import("@prisma/client/runtime/library").Decimal;
        shippingCost: import("@prisma/client/runtime/library").Decimal;
        total: import("@prisma/client/runtime/library").Decimal;
        paymentStatus: import(".prisma/client").$Enums.PaymentStatus;
    }>;
    updateStatus(id: string, updateOrderStatusDto: UpdateOrderStatusDto): Promise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        customerName: string;
        customerEmail: string;
        customerPhone: string;
        shippingAddress: import("@prisma/client/runtime/library").JsonValue;
        billingAddress: import("@prisma/client/runtime/library").JsonValue | null;
        discount: import("@prisma/client/runtime/library").Decimal;
        status: import(".prisma/client").$Enums.OrderStatus;
        orderNumber: string;
        customerId: string | null;
        subTotal: import("@prisma/client/runtime/library").Decimal;
        tax: import("@prisma/client/runtime/library").Decimal;
        shippingCost: import("@prisma/client/runtime/library").Decimal;
        total: import("@prisma/client/runtime/library").Decimal;
        paymentStatus: import(".prisma/client").$Enums.PaymentStatus;
    }>;
}
