import { CreateReservationDto } from "./dto/create-reservation.dto";
import { ReservationQueryDto } from "./dto/reservation-query.dto";
import { UpdateReservationDto } from "./dto/update-reservation.dto";
import { ReservationsService } from "./reservations.service";
export declare class ReservationsController {
    private readonly reservationsService;
    constructor(reservationsService: ReservationsService);
    findAll(companyId: string, query: ReservationQueryDto): Promise<{
        items: {
            id: string;
            companyId: string;
            code: string;
            customerId: string;
            equipmentId: string;
            startDate: string;
            endDate: string;
            depositAmount: number;
            validUntil: string;
            notes: string | null;
            status: import("./dto/create-reservation.dto").ReservationStatusEnum;
            createdAt: string;
            updatedAt: string;
            customer: {
                id: string;
                name: string;
                document: string;
                phone: string | null;
            };
            equipment: {
                id: string;
                code: string;
                assetTag: string;
                brand: string;
                model: string;
                dailyRate: import("@prisma/client/runtime/library").Decimal;
            };
        }[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
    }>;
    getStats(companyId: string): Promise<{
        total: number;
        confirmed: number;
        pending: number;
        converted: number;
        totalDeposit: number;
        conversionRate: number;
    }>;
    findOne(companyId: string, id: string): Promise<{
        id: string;
        companyId: string;
        code: string;
        customerId: string;
        equipmentId: string;
        startDate: string;
        endDate: string;
        depositAmount: number;
        validUntil: string;
        notes: string | null;
        status: import("./dto/create-reservation.dto").ReservationStatusEnum;
        createdAt: string;
        updatedAt: string;
        customer: {
            number: string | null;
            id: string;
            companyId: string;
            notes: string | null;
            status: import(".prisma/client").$Enums.CustomerStatus;
            createdAt: Date;
            updatedAt: Date;
            type: import(".prisma/client").$Enums.CustomerType;
            name: string;
            document: string;
            email: string | null;
            phone: string | null;
            mobile: string | null;
            contactName: string | null;
            creditLimit: import("@prisma/client/runtime/library").Decimal;
            zipCode: string | null;
            street: string | null;
            complement: string | null;
            district: string | null;
            city: string | null;
            state: string | null;
        };
        equipment: {
            id: string;
            companyId: string;
            code: string;
            notes: string | null;
            status: import(".prisma/client").$Enums.EquipmentStatus;
            createdAt: Date;
            updatedAt: Date;
            categoryId: string;
            assetTag: string;
            brand: string;
            model: string;
            year: number | null;
            serialNumber: string | null;
            acquisitionValue: import("@prisma/client/runtime/library").Decimal;
            dailyRate: import("@prisma/client/runtime/library").Decimal;
            weeklyRate: import("@prisma/client/runtime/library").Decimal;
            monthlyRate: import("@prisma/client/runtime/library").Decimal;
            hourMeter: import("@prisma/client/runtime/library").Decimal | null;
            mileage: import("@prisma/client/runtime/library").Decimal | null;
            qrCode: string | null;
        };
    }>;
    create(companyId: string, dto: CreateReservationDto): Promise<{
        customer: {
            number: string | null;
            id: string;
            companyId: string;
            notes: string | null;
            status: import(".prisma/client").$Enums.CustomerStatus;
            createdAt: Date;
            updatedAt: Date;
            type: import(".prisma/client").$Enums.CustomerType;
            name: string;
            document: string;
            email: string | null;
            phone: string | null;
            mobile: string | null;
            contactName: string | null;
            creditLimit: import("@prisma/client/runtime/library").Decimal;
            zipCode: string | null;
            street: string | null;
            complement: string | null;
            district: string | null;
            city: string | null;
            state: string | null;
        };
        items: ({
            equipment: {
                id: string;
                companyId: string;
                code: string;
                notes: string | null;
                status: import(".prisma/client").$Enums.EquipmentStatus;
                createdAt: Date;
                updatedAt: Date;
                categoryId: string;
                assetTag: string;
                brand: string;
                model: string;
                year: number | null;
                serialNumber: string | null;
                acquisitionValue: import("@prisma/client/runtime/library").Decimal;
                dailyRate: import("@prisma/client/runtime/library").Decimal;
                weeklyRate: import("@prisma/client/runtime/library").Decimal;
                monthlyRate: import("@prisma/client/runtime/library").Decimal;
                hourMeter: import("@prisma/client/runtime/library").Decimal | null;
                mileage: import("@prisma/client/runtime/library").Decimal | null;
                qrCode: string | null;
            };
        } & {
            id: string;
            total: import("@prisma/client/runtime/library").Decimal;
            dailyRate: import("@prisma/client/runtime/library").Decimal;
            rentalId: string;
            equipmentId: string;
            quantity: number;
        })[];
    } & {
        id: string;
        companyId: string;
        customerId: string;
        code: string;
        startDate: Date;
        endDate: Date;
        subtotal: import("@prisma/client/runtime/library").Decimal;
        discount: import("@prisma/client/runtime/library").Decimal;
        freight: import("@prisma/client/runtime/library").Decimal;
        depositAmount: import("@prisma/client/runtime/library").Decimal;
        paymentMethod: string | null;
        installmentsCount: number | null;
        total: import("@prisma/client/runtime/library").Decimal;
        operator: string | null;
        notes: string | null;
        status: import(".prisma/client").$Enums.RentalStatus;
        createdAt: Date;
        updatedAt: Date;
    }>;
    convertToRental(companyId: string, id: string): Promise<{
        customer: {
            number: string | null;
            id: string;
            companyId: string;
            notes: string | null;
            status: import(".prisma/client").$Enums.CustomerStatus;
            createdAt: Date;
            updatedAt: Date;
            type: import(".prisma/client").$Enums.CustomerType;
            name: string;
            document: string;
            email: string | null;
            phone: string | null;
            mobile: string | null;
            contactName: string | null;
            creditLimit: import("@prisma/client/runtime/library").Decimal;
            zipCode: string | null;
            street: string | null;
            complement: string | null;
            district: string | null;
            city: string | null;
            state: string | null;
        };
        items: ({
            equipment: {
                id: string;
                companyId: string;
                code: string;
                notes: string | null;
                status: import(".prisma/client").$Enums.EquipmentStatus;
                createdAt: Date;
                updatedAt: Date;
                categoryId: string;
                assetTag: string;
                brand: string;
                model: string;
                year: number | null;
                serialNumber: string | null;
                acquisitionValue: import("@prisma/client/runtime/library").Decimal;
                dailyRate: import("@prisma/client/runtime/library").Decimal;
                weeklyRate: import("@prisma/client/runtime/library").Decimal;
                monthlyRate: import("@prisma/client/runtime/library").Decimal;
                hourMeter: import("@prisma/client/runtime/library").Decimal | null;
                mileage: import("@prisma/client/runtime/library").Decimal | null;
                qrCode: string | null;
            };
        } & {
            id: string;
            total: import("@prisma/client/runtime/library").Decimal;
            dailyRate: import("@prisma/client/runtime/library").Decimal;
            rentalId: string;
            equipmentId: string;
            quantity: number;
        })[];
    } & {
        id: string;
        companyId: string;
        customerId: string;
        code: string;
        startDate: Date;
        endDate: Date;
        subtotal: import("@prisma/client/runtime/library").Decimal;
        discount: import("@prisma/client/runtime/library").Decimal;
        freight: import("@prisma/client/runtime/library").Decimal;
        depositAmount: import("@prisma/client/runtime/library").Decimal;
        paymentMethod: string | null;
        installmentsCount: number | null;
        total: import("@prisma/client/runtime/library").Decimal;
        operator: string | null;
        notes: string | null;
        status: import(".prisma/client").$Enums.RentalStatus;
        createdAt: Date;
        updatedAt: Date;
    }>;
    update(companyId: string, id: string, dto: UpdateReservationDto): Promise<{
        customer: {
            number: string | null;
            id: string;
            companyId: string;
            notes: string | null;
            status: import(".prisma/client").$Enums.CustomerStatus;
            createdAt: Date;
            updatedAt: Date;
            type: import(".prisma/client").$Enums.CustomerType;
            name: string;
            document: string;
            email: string | null;
            phone: string | null;
            mobile: string | null;
            contactName: string | null;
            creditLimit: import("@prisma/client/runtime/library").Decimal;
            zipCode: string | null;
            street: string | null;
            complement: string | null;
            district: string | null;
            city: string | null;
            state: string | null;
        };
        items: ({
            equipment: {
                id: string;
                companyId: string;
                code: string;
                notes: string | null;
                status: import(".prisma/client").$Enums.EquipmentStatus;
                createdAt: Date;
                updatedAt: Date;
                categoryId: string;
                assetTag: string;
                brand: string;
                model: string;
                year: number | null;
                serialNumber: string | null;
                acquisitionValue: import("@prisma/client/runtime/library").Decimal;
                dailyRate: import("@prisma/client/runtime/library").Decimal;
                weeklyRate: import("@prisma/client/runtime/library").Decimal;
                monthlyRate: import("@prisma/client/runtime/library").Decimal;
                hourMeter: import("@prisma/client/runtime/library").Decimal | null;
                mileage: import("@prisma/client/runtime/library").Decimal | null;
                qrCode: string | null;
            };
        } & {
            id: string;
            total: import("@prisma/client/runtime/library").Decimal;
            dailyRate: import("@prisma/client/runtime/library").Decimal;
            rentalId: string;
            equipmentId: string;
            quantity: number;
        })[];
    } & {
        id: string;
        companyId: string;
        customerId: string;
        code: string;
        startDate: Date;
        endDate: Date;
        subtotal: import("@prisma/client/runtime/library").Decimal;
        discount: import("@prisma/client/runtime/library").Decimal;
        freight: import("@prisma/client/runtime/library").Decimal;
        depositAmount: import("@prisma/client/runtime/library").Decimal;
        paymentMethod: string | null;
        installmentsCount: number | null;
        total: import("@prisma/client/runtime/library").Decimal;
        operator: string | null;
        notes: string | null;
        status: import(".prisma/client").$Enums.RentalStatus;
        createdAt: Date;
        updatedAt: Date;
    }>;
    remove(companyId: string, id: string): Promise<{
        id: string;
        companyId: string;
        customerId: string;
        code: string;
        startDate: Date;
        endDate: Date;
        subtotal: import("@prisma/client/runtime/library").Decimal;
        discount: import("@prisma/client/runtime/library").Decimal;
        freight: import("@prisma/client/runtime/library").Decimal;
        depositAmount: import("@prisma/client/runtime/library").Decimal;
        paymentMethod: string | null;
        installmentsCount: number | null;
        total: import("@prisma/client/runtime/library").Decimal;
        operator: string | null;
        notes: string | null;
        status: import(".prisma/client").$Enums.RentalStatus;
        createdAt: Date;
        updatedAt: Date;
    }>;
}
