import { OrdersService } from './orders.service';
import { OrderImportService } from './order-import.service';
import { TrackingService } from './tracking.service';
import { DeliveryService } from './delivery.service';
import { CodService } from './cod.service';
import { CreateOrderDto } from './dto/create-order.dto';
import { UpdateOrderPaymentStatusDto } from './dto/update-order-payment-status.dto';
import { AttemptDeliveryDto } from './dto/attempt-delivery.dto';
import { TrackLocationDto } from './dto/track-location.dto';
import { CancelOrderDto } from './dto/cancel-order.dto';
import { RemitCodDto, ReconcileCodDto } from './dto/cod.dto';
import type { Request, Response } from 'express';
export declare class OrdersController {
    private readonly ordersService;
    private readonly orderImportService;
    private readonly trackingService;
    private readonly deliveryService;
    private readonly codService;
    constructor(ordersService: OrdersService, orderImportService: OrderImportService, trackingService: TrackingService, deliveryService: DeliveryService, codService: CodService);
    create(dto: CreateOrderDto): Promise<import("./entities/order.entity").Order>;
    findAll(page: number | undefined, limit: number | undefined, filters: Record<string, any>, req: Request): Promise<import("../../common/interfaces/pagination-result.interface").PaginationResult<import("./entities/order.entity").Order>>;
    findOne(id: string): Promise<import("./entities/order.entity").Order>;
    findByCode(orderCode: string): Promise<import("./entities/order.entity").Order>;
    getTimeline(id: number): Promise<import("./entities/order-status-history.entity").OrderStatusHistory[]>;
    pickup(id: number, courierId: number, warehouseId: number): Promise<import("./entities/order.entity").Order>;
    updateLocation(id: number, dto: TrackLocationDto): Promise<import("./entities/order.entity").Order>;
    assignCourier(id: number, courierId: number): Promise<import("./entities/order.entity").Order>;
    attemptDelivery(id: number, dto: AttemptDeliveryDto): Promise<{
        order: import("./entities/order.entity").Order;
        attempt: import("./entities/delivery-attempt.entity").DeliveryAttempt;
    }>;
    importOrders(file: Express.Multer.File): Promise<{
        success: number;
        errors: {
            row: number;
            message: string;
        }[];
    }>;
    downloadTemplate(res: Response): Promise<void>;
    cancel(id: number, dto: CancelOrderDto, req: any): Promise<import("./entities/order.entity").Order>;
    updatePaymentStatus(id: number, dto: UpdateOrderPaymentStatusDto): Promise<import("./entities/order.entity").Order>;
    getCod(id: number): Promise<import("./entities/cod-transaction.entity").CodTransaction[]>;
    remitCod(codId: number, dto: RemitCodDto): Promise<import("./entities/cod-transaction.entity").CodTransaction>;
    reconcileCod(codId: number, dto: ReconcileCodDto): Promise<import("./entities/cod-transaction.entity").CodTransaction>;
}
