import { CourierAuthService } from './courier-auth.service';
import { LoginCourierDto } from './dto/login-courier.dto';
import { RegisterCourierDeviceDto } from './dto/register-courier-device.dto';
import { OrdersService } from './orders.service';
import { TrackingService } from './tracking.service';
import { DeliveryService } from './delivery.service';
import { CourierDeviceService } from './courier-device.service';
import type { Request } from 'express';
export declare class CourierAuthController {
    private readonly svc;
    private readonly ordersService;
    private readonly trackingService;
    private readonly deliveryService;
    private readonly deviceService;
    constructor(svc: CourierAuthService, ordersService: OrdersService, trackingService: TrackingService, deliveryService: DeliveryService, deviceService: CourierDeviceService);
    login(dto: LoginCourierDto): Promise<{
        accessToken: string;
        courier: {
            id: number;
            code: string;
            name: string;
            phone: string;
            warehouse_id: number;
            is_active: number;
        };
        tenant: {
            subdomain: string;
            name: string;
        };
    }>;
    me(courierId: number): Promise<import("./entities/courier.entity").Courier>;
    getOrders(courierId: number, page?: number, limit?: number, status?: string, req?: Request): Promise<import("../../common/interfaces/pagination-result.interface").PaginationResult<import("./entities/order.entity").Order> | {
        data: import("./entities/order.entity").Order[];
        total: number;
        page: number;
        perPage: number;
    }>;
    getOrderDetail(id: number, courierId: number): Promise<import("./entities/order.entity").Order>;
    getOrderTimeline(id: number): Promise<import("./entities/order-status-history.entity").OrderStatusHistory[]>;
    acceptOrder(id: number, courierId: number, warehouseId: number): Promise<import("./entities/order.entity").Order>;
    pickupOrder(id: number, courierId: number, warehouseId: number): Promise<import("./entities/order.entity").Order>;
    deliveryAttempt(id: number, courierId: number, result: string, failureReason?: string, note?: string): Promise<{
        order: import("./entities/order.entity").Order;
        attempt: import("./entities/delivery-attempt.entity").DeliveryAttempt;
    }>;
    registerDevice(courierId: number, dto: RegisterCourierDeviceDto): Promise<import("./entities/courier-device.entity").CourierDevice>;
    deleteDevice(deviceId: string): Promise<{
        deleted: boolean;
    }>;
    getAvailableOrders(courierId: number, warehouseId: number, page?: number, limit?: number, req?: Request): Promise<import("../../common/interfaces/pagination-result.interface").PaginationResult<import("./entities/order.entity").Order> | {
        data: import("./entities/order.entity").Order[];
        total: number;
        page: number;
        perPage: number;
    }>;
}
