import type { CurrentUserPayload } from "../../../common/decorators/current-user.decorator";
import { RentalService } from './rental.service';
declare class CreateRentalDto {
    robotUnitId: string;
    customerId: string;
    startAt: string;
    endAt: string;
    monthlyRate: number;
    currencyCode: string;
    contractAttachmentId?: string;
}
export declare class RentalController {
    private readonly service;
    constructor(service: RentalService);
    list(q: any): Promise<{
        items: ({
            _count: {
                schedules: number;
            };
        } & {
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.RentalAgreementStatus;
            updatedAt: Date;
            deletedAt: Date | null;
            organizationId: string;
            createdById: string;
            version: number;
            startAt: Date;
            currencyCode: string;
            robotUnitId: string;
            customerId: string;
            endAt: Date;
            periodMonths: number;
            monthlyRate: import("@prisma/client/runtime/library").Decimal;
            contractAttachmentId: string | null;
        })[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
    }>;
    findOne(id: string): Promise<{
        schedules: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            dueDate: Date;
            amount: import("@prisma/client/runtime/library").Decimal;
            currencyCode: string;
            paidAt: Date | null;
            rentalAgreementId: string;
            paidPaymentRecordId: string | null;
        }[];
    } & {
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.RentalAgreementStatus;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdById: string;
        version: number;
        startAt: Date;
        currencyCode: string;
        robotUnitId: string;
        customerId: string;
        endAt: Date;
        periodMonths: number;
        monthlyRate: import("@prisma/client/runtime/library").Decimal;
        contractAttachmentId: string | null;
    }>;
    create(dto: CreateRentalDto, user: CurrentUserPayload): Promise<{
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.RentalAgreementStatus;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdById: string;
        version: number;
        startAt: Date;
        currencyCode: string;
        robotUnitId: string;
        customerId: string;
        endAt: Date;
        periodMonths: number;
        monthlyRate: import("@prisma/client/runtime/library").Decimal;
        contractAttachmentId: string | null;
    }>;
    terminate(id: string, user: CurrentUserPayload): Promise<{
        schedules: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            dueDate: Date;
            amount: import("@prisma/client/runtime/library").Decimal;
            currencyCode: string;
            paidAt: Date | null;
            rentalAgreementId: string;
            paidPaymentRecordId: string | null;
        }[];
    } & {
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.RentalAgreementStatus;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdById: string;
        version: number;
        startAt: Date;
        currencyCode: string;
        robotUnitId: string;
        customerId: string;
        endAt: Date;
        periodMonths: number;
        monthlyRate: import("@prisma/client/runtime/library").Decimal;
        contractAttachmentId: string | null;
    }>;
}
export {};
