import { PaymentDirection, PaymentMethod, PaymentRelatedType, PaymentStatus, PreDelContractStatus } from '@prisma/client';
import type { CurrentUserPayload } from "../../../common/decorators/current-user.decorator";
import { PaymentService } from './payment.service';
declare class CreatePaymentDto {
    paymentNo: string;
    relatedType: PaymentRelatedType;
    relatedId: string;
    robotUnitId?: string;
    direction: PaymentDirection;
    amount: number;
    currencyCode: string;
    paymentMethod?: PaymentMethod;
    paymentStatus?: PaymentStatus;
    preDelContractStatus?: PreDelContractStatus;
    paidAt?: string;
    sapClearingDocNo?: string;
    depositTransferFormAttachmentId?: string;
    depositTransferContractAttachmentId?: string;
}
declare class MarkPaidDto {
    paidAt: string;
}
export declare class PaymentController {
    private readonly service;
    constructor(service: PaymentService);
    list(q: any): Promise<{
        items: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            deletedAt: Date | null;
            organizationId: string;
            createdById: string;
            version: number;
            amount: import("@prisma/client/runtime/library").Decimal;
            currencyCode: string;
            robotUnitId: string | null;
            direction: import("@prisma/client").$Enums.PaymentDirection;
            paymentStatus: import("@prisma/client").$Enums.PaymentStatus | null;
            relatedType: import("@prisma/client").$Enums.PaymentRelatedType;
            relatedId: string;
            paymentNo: string;
            sapClearingDocNo: string | null;
            paymentMethod: import("@prisma/client").$Enums.PaymentMethod | null;
            preDelContractStatus: import("@prisma/client").$Enums.PreDelContractStatus | null;
            paidAt: Date | null;
            depositTransferFormAttachmentId: string | null;
            depositTransferContractAttachmentId: string | null;
        }[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
    }>;
    findOne(id: string): Promise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdById: string;
        version: number;
        amount: import("@prisma/client/runtime/library").Decimal;
        currencyCode: string;
        robotUnitId: string | null;
        direction: import("@prisma/client").$Enums.PaymentDirection;
        paymentStatus: import("@prisma/client").$Enums.PaymentStatus | null;
        relatedType: import("@prisma/client").$Enums.PaymentRelatedType;
        relatedId: string;
        paymentNo: string;
        sapClearingDocNo: string | null;
        paymentMethod: import("@prisma/client").$Enums.PaymentMethod | null;
        preDelContractStatus: import("@prisma/client").$Enums.PreDelContractStatus | null;
        paidAt: Date | null;
        depositTransferFormAttachmentId: string | null;
        depositTransferContractAttachmentId: string | null;
    }>;
    create(dto: CreatePaymentDto, user: CurrentUserPayload): Promise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdById: string;
        version: number;
        amount: import("@prisma/client/runtime/library").Decimal;
        currencyCode: string;
        robotUnitId: string | null;
        direction: import("@prisma/client").$Enums.PaymentDirection;
        paymentStatus: import("@prisma/client").$Enums.PaymentStatus | null;
        relatedType: import("@prisma/client").$Enums.PaymentRelatedType;
        relatedId: string;
        paymentNo: string;
        sapClearingDocNo: string | null;
        paymentMethod: import("@prisma/client").$Enums.PaymentMethod | null;
        preDelContractStatus: import("@prisma/client").$Enums.PreDelContractStatus | null;
        paidAt: Date | null;
        depositTransferFormAttachmentId: string | null;
        depositTransferContractAttachmentId: string | null;
    }>;
    markPaid(id: string, dto: MarkPaidDto, user: CurrentUserPayload): Promise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdById: string;
        version: number;
        amount: import("@prisma/client/runtime/library").Decimal;
        currencyCode: string;
        robotUnitId: string | null;
        direction: import("@prisma/client").$Enums.PaymentDirection;
        paymentStatus: import("@prisma/client").$Enums.PaymentStatus | null;
        relatedType: import("@prisma/client").$Enums.PaymentRelatedType;
        relatedId: string;
        paymentNo: string;
        sapClearingDocNo: string | null;
        paymentMethod: import("@prisma/client").$Enums.PaymentMethod | null;
        preDelContractStatus: import("@prisma/client").$Enums.PreDelContractStatus | null;
        paidAt: Date | null;
        depositTransferFormAttachmentId: string | null;
        depositTransferContractAttachmentId: string | null;
    }>;
}
export {};
