import { SfgBomService } from './sfg-bom.service';
export declare class SfgBomController {
    private readonly sfgBomService;
    constructor(sfgBomService: SfgBomService);
    options(): Promise<{
        sfgTypes: string[];
        bomTypes: string[];
        processTypes: string[];
        statuses: string[];
        inches: string[];
        finalProductInches: string[];
        sfgItems: {
            id: string;
            status: string;
            createdAt: Date;
            updatedAt: Date;
            itemCode: string;
            itemName: string;
            itemGroup: string | null;
            sfgType: string;
            purchaseUom: string | null;
            stockUom: string | null;
            conversionRatio: number;
            billingItem: boolean;
            bom: boolean;
            stockMaintain: boolean;
            minStockLevel: number;
            maxStockLevel: number;
            rate: number;
            costPrice: number;
            inch: string | null;
            sourceData: import("src/generated/prisma/runtime/library").JsonValue;
        }[];
        machines: {
            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;
        }[];
        fgProducts: never[];
        bomParents: {
            id: string;
            status: string;
            createdAt: Date;
            updatedAt: Date;
            bomType: string;
            parentCode: string;
            parentName: string;
            parentItemType: string;
            parentSfgItemId: string | null;
            parentSetProductId: string | null;
            sourceSheet: string | null;
        }[];
    }>;
    listItems(query: Record<string, string>): Promise<{
        items: {
            id: string;
            status: string;
            createdAt: Date;
            updatedAt: Date;
            itemCode: string;
            itemName: string;
            itemGroup: string | null;
            sfgType: string;
            purchaseUom: string | null;
            stockUom: string | null;
            conversionRatio: number;
            billingItem: boolean;
            bom: boolean;
            stockMaintain: boolean;
            minStockLevel: number;
            maxStockLevel: number;
            rate: number;
            costPrice: number;
            inch: string | null;
            sourceData: import("src/generated/prisma/runtime/library").JsonValue;
        }[];
        meta: {
            total: number;
            page: number;
            pageSize: number;
            totalPages: number;
        };
        filterOptions: {
            sfgTypes: string[];
            bomTypes: string[];
            processTypes: string[];
            statuses: string[];
            inches: string[];
            finalProductInches: string[];
            sfgItems: {
                id: string;
                status: string;
                createdAt: Date;
                updatedAt: Date;
                itemCode: string;
                itemName: string;
                itemGroup: string | null;
                sfgType: string;
                purchaseUom: string | null;
                stockUom: string | null;
                conversionRatio: number;
                billingItem: boolean;
                bom: boolean;
                stockMaintain: boolean;
                minStockLevel: number;
                maxStockLevel: number;
                rate: number;
                costPrice: number;
                inch: string | null;
                sourceData: import("src/generated/prisma/runtime/library").JsonValue;
            }[];
            machines: {
                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;
            }[];
            fgProducts: never[];
            bomParents: {
                id: string;
                status: string;
                createdAt: Date;
                updatedAt: Date;
                bomType: string;
                parentCode: string;
                parentName: string;
                parentItemType: string;
                parentSfgItemId: string | null;
                parentSetProductId: string | null;
                sourceSheet: string | null;
            }[];
        };
    }>;
    exportItems(format?: string): Promise<import("../common/tabular-file.util").ExportFile>;
    getItem(id: string): Promise<{
        processes: {
            id: string;
            status: string;
            createdAt: Date;
            updatedAt: Date;
            itemCode: string;
            itemName: string;
            inch: string | null;
            sourceData: import("src/generated/prisma/runtime/library").JsonValue;
            hourRate: number;
            processCode: string;
            sfgItemId: string | null;
            processName: string;
            processType: string;
            setupTime: number;
            processTime: number;
            inspectionTime: number;
            inspectionRequired: boolean;
            toolsDie: string | null;
            machineryId: string | null;
            machineName: string | null;
            description: string | null;
            reqMaterialCode: string | null;
            reqMaterialQty: number;
            machineCost: number;
            costingProcessId: string | null;
        }[];
        parentBoms: ({
            items: {
                id: string;
                createdAt: Date;
                updatedAt: Date;
                sourceData: import("src/generated/prisma/runtime/library").JsonValue;
                sourceSheet: string | null;
                bomId: string;
                childCode: string;
                childName: string;
                childItemType: string;
                childSfgItemId: string | null;
                rawMaterialId: string | null;
                quantity: number;
                newQuantity: number | null;
                uom: string | null;
                wastagePercent: number;
                costPerUnit: number;
                totalMaterialCost: number;
            }[];
        } & {
            id: string;
            status: string;
            createdAt: Date;
            updatedAt: Date;
            bomType: string;
            parentCode: string;
            parentName: string;
            parentItemType: string;
            parentSfgItemId: string | null;
            parentSetProductId: string | null;
            sourceSheet: string | null;
        })[];
        childBoms: ({
            bom: {
                id: string;
                status: string;
                createdAt: Date;
                updatedAt: Date;
                bomType: string;
                parentCode: string;
                parentName: string;
                parentItemType: string;
                parentSfgItemId: string | null;
                parentSetProductId: string | null;
                sourceSheet: string | null;
            };
        } & {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            sourceData: import("src/generated/prisma/runtime/library").JsonValue;
            sourceSheet: string | null;
            bomId: string;
            childCode: string;
            childName: string;
            childItemType: string;
            childSfgItemId: string | null;
            rawMaterialId: string | null;
            quantity: number;
            newQuantity: number | null;
            uom: string | null;
            wastagePercent: number;
            costPerUnit: number;
            totalMaterialCost: number;
        })[];
        costRecords: any;
        id: string;
        status: string;
        createdAt: Date;
        updatedAt: Date;
        itemCode: string;
        itemName: string;
        itemGroup: string | null;
        sfgType: string;
        purchaseUom: string | null;
        stockUom: string | null;
        conversionRatio: number;
        billingItem: boolean;
        bom: boolean;
        stockMaintain: boolean;
        minStockLevel: number;
        maxStockLevel: number;
        rate: number;
        costPrice: number;
        inch: string | null;
        sourceData: import("src/generated/prisma/runtime/library").JsonValue;
    }>;
    createItem(body: any): Promise<{
        id: string;
        status: string;
        createdAt: Date;
        updatedAt: Date;
        itemCode: string;
        itemName: string;
        itemGroup: string | null;
        sfgType: string;
        purchaseUom: string | null;
        stockUom: string | null;
        conversionRatio: number;
        billingItem: boolean;
        bom: boolean;
        stockMaintain: boolean;
        minStockLevel: number;
        maxStockLevel: number;
        rate: number;
        costPrice: number;
        inch: string | null;
        sourceData: import("src/generated/prisma/runtime/library").JsonValue;
    }>;
    updateItem(id: string, body: any): Promise<{
        id: string;
        status: string;
        createdAt: Date;
        updatedAt: Date;
        itemCode: string;
        itemName: string;
        itemGroup: string | null;
        sfgType: string;
        purchaseUom: string | null;
        stockUom: string | null;
        conversionRatio: number;
        billingItem: boolean;
        bom: boolean;
        stockMaintain: boolean;
        minStockLevel: number;
        maxStockLevel: number;
        rate: number;
        costPrice: number;
        inch: string | null;
        sourceData: import("src/generated/prisma/runtime/library").JsonValue;
    }>;
    deleteItem(id: string): Promise<{
        deleted: boolean;
    }>;
    listBoms(query: Record<string, string>): Promise<{
        items: {
            id: string;
            bomType: string;
            parentCode: any;
            parentName: any;
            parentItemType: string;
            parentSfgItemId: null;
            parentSetProductId: any;
            sourceSheet: string;
            status: string;
            itemCount: any;
            image: any;
            holderCode: any;
            plateCode: any;
            wheelCode: any;
            inch: any;
            finishVariant: any;
            materialCost: number;
            machineCost: number;
            coatingCost: number;
            totalCost: number;
        }[];
        meta: {
            total: number;
            page: number;
            pageSize: number;
            totalPages: number;
        };
        filterOptions: {
            sfgTypes: string[];
            bomTypes: string[];
            processTypes: string[];
            statuses: string[];
            inches: string[];
            finalProductInches: string[];
            sfgItems: {
                id: string;
                status: string;
                createdAt: Date;
                updatedAt: Date;
                itemCode: string;
                itemName: string;
                itemGroup: string | null;
                sfgType: string;
                purchaseUom: string | null;
                stockUom: string | null;
                conversionRatio: number;
                billingItem: boolean;
                bom: boolean;
                stockMaintain: boolean;
                minStockLevel: number;
                maxStockLevel: number;
                rate: number;
                costPrice: number;
                inch: string | null;
                sourceData: import("src/generated/prisma/runtime/library").JsonValue;
            }[];
            machines: {
                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;
            }[];
            fgProducts: never[];
            bomParents: {
                id: string;
                status: string;
                createdAt: Date;
                updatedAt: Date;
                bomType: string;
                parentCode: string;
                parentName: string;
                parentItemType: string;
                parentSfgItemId: string | null;
                parentSetProductId: string | null;
                sourceSheet: string | null;
            }[];
        };
    } | {
        items: {
            itemCount: number;
            materialCost: number;
            machineCost: number;
            coatingCost: number;
            totalCost: number;
            items: {
                id: string;
                createdAt: Date;
                updatedAt: Date;
                sourceData: import("src/generated/prisma/runtime/library").JsonValue;
                sourceSheet: string | null;
                bomId: string;
                childCode: string;
                childName: string;
                childItemType: string;
                childSfgItemId: string | null;
                rawMaterialId: string | null;
                quantity: number;
                newQuantity: number | null;
                uom: string | null;
                wastagePercent: number;
                costPerUnit: number;
                totalMaterialCost: number;
            }[];
            id: string;
            status: string;
            createdAt: Date;
            updatedAt: Date;
            bomType: string;
            parentCode: string;
            parentName: string;
            parentItemType: string;
            parentSfgItemId: string | null;
            parentSetProductId: string | null;
            sourceSheet: string | null;
        }[];
        meta: {
            total: number;
            page: number;
            pageSize: number;
            totalPages: number;
        };
        filterOptions: {
            sfgTypes: string[];
            bomTypes: string[];
            processTypes: string[];
            statuses: string[];
            inches: string[];
            finalProductInches: string[];
            sfgItems: {
                id: string;
                status: string;
                createdAt: Date;
                updatedAt: Date;
                itemCode: string;
                itemName: string;
                itemGroup: string | null;
                sfgType: string;
                purchaseUom: string | null;
                stockUom: string | null;
                conversionRatio: number;
                billingItem: boolean;
                bom: boolean;
                stockMaintain: boolean;
                minStockLevel: number;
                maxStockLevel: number;
                rate: number;
                costPrice: number;
                inch: string | null;
                sourceData: import("src/generated/prisma/runtime/library").JsonValue;
            }[];
            machines: {
                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;
            }[];
            fgProducts: never[];
            bomParents: {
                id: string;
                status: string;
                createdAt: Date;
                updatedAt: Date;
                bomType: string;
                parentCode: string;
                parentName: string;
                parentItemType: string;
                parentSfgItemId: string | null;
                parentSetProductId: string | null;
                sourceSheet: string | null;
            }[];
        };
    }>;
    exportBoms(format?: string, bomType?: string): Promise<import("../common/tabular-file.util").ExportFile>;
    getBom(id: string): Promise<any>;
    listProcesses(query: Record<string, string>): Promise<{
        items: {
            id: string;
            status: string;
            createdAt: Date;
            updatedAt: Date;
            itemCode: string;
            itemName: string;
            inch: string | null;
            sourceData: import("src/generated/prisma/runtime/library").JsonValue;
            hourRate: number;
            processCode: string;
            sfgItemId: string | null;
            processName: string;
            processType: string;
            setupTime: number;
            processTime: number;
            inspectionTime: number;
            inspectionRequired: boolean;
            toolsDie: string | null;
            machineryId: string | null;
            machineName: string | null;
            description: string | null;
            reqMaterialCode: string | null;
            reqMaterialQty: number;
            machineCost: number;
            costingProcessId: string | null;
        }[];
        meta: {
            total: number;
            page: number;
            pageSize: number;
            totalPages: number;
        };
        filterOptions: {
            sfgTypes: string[];
            bomTypes: string[];
            processTypes: string[];
            statuses: string[];
            inches: string[];
            finalProductInches: string[];
            sfgItems: {
                id: string;
                status: string;
                createdAt: Date;
                updatedAt: Date;
                itemCode: string;
                itemName: string;
                itemGroup: string | null;
                sfgType: string;
                purchaseUom: string | null;
                stockUom: string | null;
                conversionRatio: number;
                billingItem: boolean;
                bom: boolean;
                stockMaintain: boolean;
                minStockLevel: number;
                maxStockLevel: number;
                rate: number;
                costPrice: number;
                inch: string | null;
                sourceData: import("src/generated/prisma/runtime/library").JsonValue;
            }[];
            machines: {
                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;
            }[];
            fgProducts: never[];
            bomParents: {
                id: string;
                status: string;
                createdAt: Date;
                updatedAt: Date;
                bomType: string;
                parentCode: string;
                parentName: string;
                parentItemType: string;
                parentSfgItemId: string | null;
                parentSetProductId: string | null;
                sourceSheet: string | null;
            }[];
        };
    }>;
    exportProcesses(format?: string): Promise<import("../common/tabular-file.util").ExportFile>;
    finalProductOptions(query: Record<string, string>): Promise<{
        items: {
            image: string;
            id: string;
            wheelName: string;
            wheelCode: string;
            createdAt: Date;
            updatedAt: Date;
            setId: string;
            holderCode: string;
            holderName: string;
            plateCode: string;
            plateName: string;
            brakeName: string;
            finishType: string;
            finishLabel: string;
            productName: string;
            productCode: string;
            productInch: number;
            set: {
                id: string;
                createdAt: Date;
                updatedAt: Date;
                holderCode: string;
                holderName: string;
                productInch: number;
                setNumber: number;
                plateCount: number;
                finishCount: number;
                wheelCount: number;
            };
        }[];
        meta: {
            total: number;
            page: number;
            pageSize: number;
            totalPages: number;
        };
        inches: string[];
    }>;
    finalCost(query: Record<string, string>): Promise<any>;
    previewWorkbook(body: any): Promise<{
        fileSheets: string[];
        rows: {
            sfgItems: number;
            fgBom: number;
            itemProcesses: number;
            subPartsBom: number;
            holderSummary: number;
            wheelSummary: number;
        };
    }>;
    importWorkbook(body: any): Promise<{
        fileSheets: string[];
        rows: {
            sfgItems: number;
            fgBom: number;
            itemProcesses: number;
            subPartsBom: number;
            holderSummary: number;
            wheelSummary: number;
        };
        imported: {
            sfgItems: number;
            fgBomHeaders: number;
            fgBomItems: number;
            subPartBomHeaders: number;
            subPartBomItems: number;
            itemProcesses: number;
            machinery: number;
            holderCostRecords: number;
            holderCostLines: number;
            wheelCostRecords: number;
            wheelCostLines: number;
        };
        errors: string[];
    }>;
}
