import { DeliveryFormStatus, DeliveryRequestStatus, DeliveryRequestType, InvoiceStatus, RevenueRecognitionStatus } from '@prisma/client';
import type { CurrentUserPayload } from "../../../common/decorators/current-user.decorator";
import { DeliveryService } from './delivery.service';
declare class CreateDeliveryRequestDto {
    deliveryNo: string;
    salesOrderId: string;
    customerId: string;
    requestType: DeliveryRequestType;
    expectedDate: string;
    notes?: string;
}
declare class UpdateDeliveryRequestDto {
    status?: DeliveryRequestStatus;
    expectedDate?: string;
    notes?: string;
}
declare class CreateFulfillmentDto {
    deliveryRequestId: string;
    robotUnitId: string;
    deliveredAt: string;
    signedAt?: string;
    signedFormStatus?: DeliveryFormStatus;
    acceptanceFormStatus?: DeliveryFormStatus;
    acceptanceFormPreDel?: DeliveryFormStatus;
    acceptanceFormAttachmentId?: string;
    sapPgiDocNo?: string;
    cost?: number;
    notePreDel?: string;
    additionalShippingNotes?: string;
}
declare class UpdateFulfillmentDto {
    signedFormStatus?: DeliveryFormStatus;
    acceptanceFormStatus?: DeliveryFormStatus;
    acceptanceFormPreDel?: DeliveryFormStatus;
    revenueRecognition?: RevenueRecognitionStatus;
    invoiceStatus?: InvoiceStatus;
    cost?: number;
    grossMargin?: number;
    notePreDel?: string;
    additionalShippingNotes?: string;
}
export declare class DeliveryController {
    private readonly service;
    constructor(service: DeliveryService);
    listRequests(salesOrderId?: string, customerId?: string, status?: DeliveryRequestStatus, page?: string, limit?: string): Promise<{
        items: ({
            _count: {
                fulfillments: number;
            };
        } & {
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.DeliveryRequestStatus;
            updatedAt: Date;
            deletedAt: Date | null;
            organizationId: string;
            createdById: string;
            notes: string | null;
            deliveryNo: string;
            salesOrderId: string;
            customerId: string;
            requestType: import("@prisma/client").$Enums.DeliveryRequestType;
            expectedDate: Date;
        })[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
    }>;
    findRequest(id: string): Promise<{
        salesOrder: {
            id: string;
            soNo: string;
        };
        fulfillments: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            deletedAt: Date | null;
            organizationId: string;
            createdById: string;
            version: number;
            cost: import("@prisma/client/runtime/library").Decimal | null;
            robotUnitId: string;
            deliveryRequestId: string;
            sapPgiDocNo: string | null;
            deliveredAt: Date;
            signedAt: Date | null;
            signedFormStatus: import("@prisma/client").$Enums.DeliveryFormStatus | null;
            acceptanceFormStatus: import("@prisma/client").$Enums.DeliveryFormStatus | null;
            acceptanceFormPreDel: import("@prisma/client").$Enums.DeliveryFormStatus | null;
            acceptanceFormAttachmentId: string | null;
            notePreDel: string | null;
            additionalShippingNotes: string | null;
            grossMargin: import("@prisma/client/runtime/library").Decimal | null;
            revenueRecognition: import("@prisma/client").$Enums.RevenueRecognitionStatus | null;
            invoiceStatus: import("@prisma/client").$Enums.InvoiceStatus | null;
        }[];
    } & {
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.DeliveryRequestStatus;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdById: string;
        notes: string | null;
        deliveryNo: string;
        salesOrderId: string;
        customerId: string;
        requestType: import("@prisma/client").$Enums.DeliveryRequestType;
        expectedDate: Date;
    }>;
    createRequest(dto: CreateDeliveryRequestDto, user: CurrentUserPayload): Promise<{
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.DeliveryRequestStatus;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdById: string;
        notes: string | null;
        deliveryNo: string;
        salesOrderId: string;
        customerId: string;
        requestType: import("@prisma/client").$Enums.DeliveryRequestType;
        expectedDate: Date;
    }>;
    updateRequest(id: string, dto: UpdateDeliveryRequestDto, user: CurrentUserPayload): Promise<{
        salesOrder: {
            id: string;
            soNo: string;
        };
        fulfillments: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            deletedAt: Date | null;
            organizationId: string;
            createdById: string;
            version: number;
            cost: import("@prisma/client/runtime/library").Decimal | null;
            robotUnitId: string;
            deliveryRequestId: string;
            sapPgiDocNo: string | null;
            deliveredAt: Date;
            signedAt: Date | null;
            signedFormStatus: import("@prisma/client").$Enums.DeliveryFormStatus | null;
            acceptanceFormStatus: import("@prisma/client").$Enums.DeliveryFormStatus | null;
            acceptanceFormPreDel: import("@prisma/client").$Enums.DeliveryFormStatus | null;
            acceptanceFormAttachmentId: string | null;
            notePreDel: string | null;
            additionalShippingNotes: string | null;
            grossMargin: import("@prisma/client/runtime/library").Decimal | null;
            revenueRecognition: import("@prisma/client").$Enums.RevenueRecognitionStatus | null;
            invoiceStatus: import("@prisma/client").$Enums.InvoiceStatus | null;
        }[];
    } & {
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.DeliveryRequestStatus;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdById: string;
        notes: string | null;
        deliveryNo: string;
        salesOrderId: string;
        customerId: string;
        requestType: import("@prisma/client").$Enums.DeliveryRequestType;
        expectedDate: Date;
    }>;
    findFulfillment(id: string): Promise<{
        robotUnit: {
            id: string;
            ffsn: string;
        };
        deliveryRequest: {
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.DeliveryRequestStatus;
            updatedAt: Date;
            deletedAt: Date | null;
            organizationId: string;
            createdById: string;
            notes: string | null;
            deliveryNo: string;
            salesOrderId: string;
            customerId: string;
            requestType: import("@prisma/client").$Enums.DeliveryRequestType;
            expectedDate: Date;
        };
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdById: string;
        version: number;
        cost: import("@prisma/client/runtime/library").Decimal | null;
        robotUnitId: string;
        deliveryRequestId: string;
        sapPgiDocNo: string | null;
        deliveredAt: Date;
        signedAt: Date | null;
        signedFormStatus: import("@prisma/client").$Enums.DeliveryFormStatus | null;
        acceptanceFormStatus: import("@prisma/client").$Enums.DeliveryFormStatus | null;
        acceptanceFormPreDel: import("@prisma/client").$Enums.DeliveryFormStatus | null;
        acceptanceFormAttachmentId: string | null;
        notePreDel: string | null;
        additionalShippingNotes: string | null;
        grossMargin: import("@prisma/client/runtime/library").Decimal | null;
        revenueRecognition: import("@prisma/client").$Enums.RevenueRecognitionStatus | null;
        invoiceStatus: import("@prisma/client").$Enums.InvoiceStatus | null;
    }>;
    createFulfillment(dto: CreateFulfillmentDto, user: CurrentUserPayload): Promise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdById: string;
        version: number;
        cost: import("@prisma/client/runtime/library").Decimal | null;
        robotUnitId: string;
        deliveryRequestId: string;
        sapPgiDocNo: string | null;
        deliveredAt: Date;
        signedAt: Date | null;
        signedFormStatus: import("@prisma/client").$Enums.DeliveryFormStatus | null;
        acceptanceFormStatus: import("@prisma/client").$Enums.DeliveryFormStatus | null;
        acceptanceFormPreDel: import("@prisma/client").$Enums.DeliveryFormStatus | null;
        acceptanceFormAttachmentId: string | null;
        notePreDel: string | null;
        additionalShippingNotes: string | null;
        grossMargin: import("@prisma/client/runtime/library").Decimal | null;
        revenueRecognition: import("@prisma/client").$Enums.RevenueRecognitionStatus | null;
        invoiceStatus: import("@prisma/client").$Enums.InvoiceStatus | null;
    }>;
    updateFulfillment(id: string, dto: UpdateFulfillmentDto): Promise<{
        robotUnit: {
            id: string;
            ffsn: string;
        };
        deliveryRequest: {
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.DeliveryRequestStatus;
            updatedAt: Date;
            deletedAt: Date | null;
            organizationId: string;
            createdById: string;
            notes: string | null;
            deliveryNo: string;
            salesOrderId: string;
            customerId: string;
            requestType: import("@prisma/client").$Enums.DeliveryRequestType;
            expectedDate: Date;
        };
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdById: string;
        version: number;
        cost: import("@prisma/client/runtime/library").Decimal | null;
        robotUnitId: string;
        deliveryRequestId: string;
        sapPgiDocNo: string | null;
        deliveredAt: Date;
        signedAt: Date | null;
        signedFormStatus: import("@prisma/client").$Enums.DeliveryFormStatus | null;
        acceptanceFormStatus: import("@prisma/client").$Enums.DeliveryFormStatus | null;
        acceptanceFormPreDel: import("@prisma/client").$Enums.DeliveryFormStatus | null;
        acceptanceFormAttachmentId: string | null;
        notePreDel: string | null;
        additionalShippingNotes: string | null;
        grossMargin: import("@prisma/client/runtime/library").Decimal | null;
        revenueRecognition: import("@prisma/client").$Enums.RevenueRecognitionStatus | null;
        invoiceStatus: import("@prisma/client").$Enums.InvoiceStatus | null;
    }>;
}
export {};
