import { PrismaService } from '../prisma/prisma.service';
import { ImportCommitDto, ImportPreviewDto, MachineryQuery, MachineryWriteDto } from './machinery.dto';
export declare class MachineryService {
    private readonly prisma;
    constructor(prisma: PrismaService);
    list(query: MachineryQuery): Promise<{
        items: {
            id: string;
            status: string;
            createdAt: Date;
            updatedAt: Date;
            name: string | null;
            moduleType: string;
            machineryName: string;
            machineryNumber: string;
            eachHp: number;
            hourRate: number;
            code: string | null;
            tonnage: number | null;
            noOfPlatens: number | null;
            platenSize: string | null;
            powerPackHp: number | null;
            heaterCapacity: number | null;
            heaterPerPlaten: number | null;
            noOfPlates: number | null;
            coolingTower: number | null;
            powerPack: number | null;
            heaterPack: number | null;
            coolingTowerCost: number | null;
        }[];
        meta: {
            total: number;
            page: number;
            pageSize: number;
            totalPages: number;
        };
        filterOptions: {
            moduleTypes: string[];
            statuses: string[];
            sampleHeaders: string[];
        };
    }>;
    detail(id: string): Promise<{
        id: string;
        status: string;
        createdAt: Date;
        updatedAt: Date;
        name: string | null;
        moduleType: string;
        machineryName: string;
        machineryNumber: string;
        eachHp: number;
        hourRate: number;
        code: string | null;
        tonnage: number | null;
        noOfPlatens: number | null;
        platenSize: string | null;
        powerPackHp: number | null;
        heaterCapacity: number | null;
        heaterPerPlaten: number | null;
        noOfPlates: number | null;
        coolingTower: number | null;
        powerPack: number | null;
        heaterPack: number | null;
        coolingTowerCost: number | null;
    }>;
    create(dto: MachineryWriteDto): Promise<{
        id: string;
        status: string;
        createdAt: Date;
        updatedAt: Date;
        name: string | null;
        moduleType: string;
        machineryName: string;
        machineryNumber: string;
        eachHp: number;
        hourRate: number;
        code: string | null;
        tonnage: number | null;
        noOfPlatens: number | null;
        platenSize: string | null;
        powerPackHp: number | null;
        heaterCapacity: number | null;
        heaterPerPlaten: number | null;
        noOfPlates: number | null;
        coolingTower: number | null;
        powerPack: number | null;
        heaterPack: number | null;
        coolingTowerCost: number | null;
    }>;
    update(id: string, dto: MachineryWriteDto): Promise<{
        id: string;
        status: string;
        createdAt: Date;
        updatedAt: Date;
        name: string | null;
        moduleType: string;
        machineryName: string;
        machineryNumber: string;
        eachHp: number;
        hourRate: number;
        code: string | null;
        tonnage: number | null;
        noOfPlatens: number | null;
        platenSize: string | null;
        powerPackHp: number | null;
        heaterCapacity: number | null;
        heaterPerPlaten: number | null;
        noOfPlates: number | null;
        coolingTower: number | null;
        powerPack: number | null;
        heaterPack: number | null;
        coolingTowerCost: number | null;
    }>;
    delete(id: string): Promise<{
        deleted: boolean;
    }>;
    options(): {
        moduleTypes: string[];
        statuses: string[];
        sampleHeaders: string[];
    };
    export(moduleName: string, query: MachineryQuery & {
        format?: string;
    }): Promise<import("../common/tabular-file.util").ExportFile>;
    sample(moduleName: string, format?: string): import("../common/tabular-file.util").ExportFile;
    previewImport(moduleName: string, dto: ImportPreviewDto): {
        fileName: string;
        rows: {
            rowNumber: number;
            data: MachineryWriteDto;
            valid: boolean;
            errors: string[];
        }[];
        total: number;
        valid: number;
        invalid: number;
    };
    commitImport(moduleName: string, dto: ImportCommitDto): Promise<{
        created: number;
        failed: number;
        errors: string[];
    }>;
    private buildWhere;
    private validate;
}
