import { TenantConnectionService } from '../tenant/tenant-connection.service';
import { BaseTenantService } from '@/common/base/service/base-crud.service';
import { Order } from './entities/order.entity';
import { FeeCalculationService } from './fee-calculation.service';
import { CreateOrderDto } from './dto/create-order.dto';
import { FindOneOptions } from 'typeorm';
import type { Request } from 'express';
export declare class OrdersService extends BaseTenantService<Order> {
    protected readonly tenantConnectionService: TenantConnectionService;
    private readonly feeCalculationService;
    protected entity: typeof Order;
    constructor(tenantConnectionService: TenantConnectionService, feeCalculationService: FeeCalculationService);
    createOrder(dto: CreateOrderDto): Promise<Order>;
    cancelOrder(orderId: number, reason: string, actorId?: number): Promise<Order>;
    updateOrderPaymentStatus(orderId: number, payment_status: string, description?: string): Promise<Order>;
    findByOrderCode(code: string): Promise<Order | null>;
    findOneOrder(options: FindOneOptions<Order>): Promise<Order | null>;
    findByCourier(courierId: number, page: number, perPage: number, status?: string, req?: Request): Promise<import("../../common/interfaces/pagination-result.interface").PaginationResult<Order> | {
        data: Order[];
        total: number;
        page: number;
        perPage: number;
    }>;
    searchOrders(page: number, perPage: number, filters: Record<string, any>, req: Request): Promise<import("../../common/interfaces/pagination-result.interface").PaginationResult<Order>>;
    findAvailableForCourier(courierId: number, warehouseId: number, page: number, perPage: number, req?: Request): Promise<import("../../common/interfaces/pagination-result.interface").PaginationResult<Order> | {
        data: Order[];
        total: number;
        page: number;
        perPage: number;
    }>;
    private generateOrderCode;
}
