import { CreateServiceOrderDto } from "./dto/create-service-order.dto";
import { ServiceOrderQueryDto } from "./dto/service-order-query.dto";
import { UpdateServiceOrderDto } from "./dto/update-service-order.dto";
import { MaintenanceService } from "./maintenance.service";
export declare class MaintenanceController {
    private readonly maintenanceService;
    constructor(maintenanceService: MaintenanceService);
    findAll(companyId: string, query: ServiceOrderQueryDto): Promise<{
        items: {
            cost: number;
            openedAt: string;
            closedAt: string | null;
            equipment: {
                id: string;
                status: import(".prisma/client").$Enums.EquipmentStatus;
                code: string;
                assetTag: string;
                brand: string;
                model: string;
                dailyRate: import("@prisma/client/runtime/library").Decimal;
            };
            payables: ({
                supplier: {
                    id: string;
                    document: string | null;
                    email: string | null;
                    phone: string | null;
                    createdAt: Date;
                    updatedAt: Date;
                    companyId: string;
                    name: string;
                    contactName: string | null;
                } | null;
            } & {
                id: string;
                status: import(".prisma/client").$Enums.FinancialStatus;
                createdAt: Date;
                updatedAt: Date;
                companyId: string;
                description: string;
                amount: import("@prisma/client/runtime/library").Decimal;
                dueDate: Date;
                paidAt: Date | null;
                supplierId: string | null;
                serviceOrderId: string | null;
            })[];
            id: string;
            status: import(".prisma/client").$Enums.MaintenanceStatus;
            companyId: string;
            title: string;
            code: string;
            equipmentId: string;
            description: string | null;
        }[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
    }>;
    getStats(companyId: string): Promise<{
        total: number;
        open: number;
        inProgress: number;
        done: number;
        canceled: number;
        totalCost: number;
    }>;
    findOne(companyId: string, id: string): Promise<{
        cost: number;
        openedAt: string;
        closedAt: string | null;
        equipment: {
            category: {
                id: string;
                createdAt: Date;
                updatedAt: Date;
                companyId: string;
                name: string;
                description: string | null;
                color: string;
            };
        } & {
            id: string;
            status: import(".prisma/client").$Enums.EquipmentStatus;
            createdAt: Date;
            updatedAt: Date;
            companyId: string;
            code: string;
            notes: string | null;
            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;
        };
        payables: ({
            supplier: {
                id: string;
                document: string | null;
                email: string | null;
                phone: string | null;
                createdAt: Date;
                updatedAt: Date;
                companyId: string;
                name: string;
                contactName: string | null;
            } | null;
        } & {
            id: string;
            status: import(".prisma/client").$Enums.FinancialStatus;
            createdAt: Date;
            updatedAt: Date;
            companyId: string;
            description: string;
            amount: import("@prisma/client/runtime/library").Decimal;
            dueDate: Date;
            paidAt: Date | null;
            supplierId: string | null;
            serviceOrderId: string | null;
        })[];
        id: string;
        status: import(".prisma/client").$Enums.MaintenanceStatus;
        companyId: string;
        title: string;
        code: string;
        equipmentId: string;
        description: string | null;
    }>;
    create(companyId: string, dto: CreateServiceOrderDto): Promise<{
        cost: number;
        openedAt: string;
        closedAt: string | null;
        equipment: {
            category: {
                id: string;
                createdAt: Date;
                updatedAt: Date;
                companyId: string;
                name: string;
                description: string | null;
                color: string;
            };
        } & {
            id: string;
            status: import(".prisma/client").$Enums.EquipmentStatus;
            createdAt: Date;
            updatedAt: Date;
            companyId: string;
            code: string;
            notes: string | null;
            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;
        };
        payables: ({
            supplier: {
                id: string;
                document: string | null;
                email: string | null;
                phone: string | null;
                createdAt: Date;
                updatedAt: Date;
                companyId: string;
                name: string;
                contactName: string | null;
            } | null;
        } & {
            id: string;
            status: import(".prisma/client").$Enums.FinancialStatus;
            createdAt: Date;
            updatedAt: Date;
            companyId: string;
            description: string;
            amount: import("@prisma/client/runtime/library").Decimal;
            dueDate: Date;
            paidAt: Date | null;
            supplierId: string | null;
            serviceOrderId: string | null;
        })[];
        id: string;
        status: import(".prisma/client").$Enums.MaintenanceStatus;
        companyId: string;
        title: string;
        code: string;
        equipmentId: string;
        description: string | null;
    }>;
    update(companyId: string, id: string, dto: UpdateServiceOrderDto): Promise<{
        cost: number;
        openedAt: string;
        closedAt: string | null;
        equipment: {
            category: {
                id: string;
                createdAt: Date;
                updatedAt: Date;
                companyId: string;
                name: string;
                description: string | null;
                color: string;
            };
        } & {
            id: string;
            status: import(".prisma/client").$Enums.EquipmentStatus;
            createdAt: Date;
            updatedAt: Date;
            companyId: string;
            code: string;
            notes: string | null;
            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;
        };
        payables: ({
            supplier: {
                id: string;
                document: string | null;
                email: string | null;
                phone: string | null;
                createdAt: Date;
                updatedAt: Date;
                companyId: string;
                name: string;
                contactName: string | null;
            } | null;
        } & {
            id: string;
            status: import(".prisma/client").$Enums.FinancialStatus;
            createdAt: Date;
            updatedAt: Date;
            companyId: string;
            description: string;
            amount: import("@prisma/client/runtime/library").Decimal;
            dueDate: Date;
            paidAt: Date | null;
            supplierId: string | null;
            serviceOrderId: string | null;
        })[];
        id: string;
        status: import(".prisma/client").$Enums.MaintenanceStatus;
        companyId: string;
        title: string;
        code: string;
        equipmentId: string;
        description: string | null;
    }>;
    remove(companyId: string, id: string): Promise<{
        id: string;
        status: import(".prisma/client").$Enums.MaintenanceStatus;
        companyId: string;
        title: string;
        code: string;
        equipmentId: string;
        description: string | null;
        cost: import("@prisma/client/runtime/library").Decimal;
        openedAt: Date;
        closedAt: Date | null;
    }>;
}
