/// <reference types="mongoose/types/types" />
/// <reference types="mongoose/types/aggregate" />
/// <reference types="mongoose/types/callback" />
/// <reference types="mongoose/types/collection" />
/// <reference types="mongoose/types/connection" />
/// <reference types="mongoose/types/cursor" />
/// <reference types="mongoose/types/document" />
/// <reference types="mongoose/types/error" />
/// <reference types="mongoose/types/expressions" />
/// <reference types="mongoose/types/helpers" />
/// <reference types="mongoose/types/middlewares" />
/// <reference types="mongoose/types/indexes" />
/// <reference types="mongoose/types/models" />
/// <reference types="mongoose/types/mongooseoptions" />
/// <reference types="mongoose/types/pipelinestage" />
/// <reference types="mongoose/types/populate" />
/// <reference types="mongoose/types/query" />
/// <reference types="mongoose/types/schemaoptions" />
/// <reference types="mongoose/types/schematypes" />
/// <reference types="mongoose/types/session" />
/// <reference types="mongoose/types/types" />
/// <reference types="mongoose/types/utility" />
/// <reference types="mongoose/types/validation" />
/// <reference types="mongoose/types/virtuals" />
/// <reference types="mongoose/types/inferschematype" />
import mongoose from 'mongoose';
import { IInventoryItem } from '../models/InventoryItem.model';
import { IUploadedItems } from '../interfaces/collaterals.interface';
import { CollateralsService } from './collaterals.service';
export declare class InventoryService {
    private readonly collateralsService;
    constructor(collateralsService: CollateralsService);
    updateInventorySKU({ bbcDate, borrowerId, items }: IUploadedItems<IInventoryItem>): Promise<({
        skuDate: Date;
        category: string;
        sku: string;
        qty: number;
        value: number;
        expiryDate: Date;
        location: string;
        unitCost: number;
        skuDescription1: string;
        skuDescription2: string;
        skuDescription3: string;
        detail1: string;
        detail2: string;
        detail3: string;
        bbcSheetId: mongoose.Types.ObjectId;
        order: number;
    } | {
        skuDate: string;
        category: string;
        sku: string;
        qty: number;
        value: number;
        expiryDate: Date;
        location: string;
        unitCost: number;
        skuDescription1: string;
        skuDescription2: string;
        skuDescription3: string;
        detail1: string;
        detail2: string;
        detail3: string;
        bbcSheetId: mongoose.Types.ObjectId;
        order: number;
    })[]>;
    getBenford(borrowerId: string): Promise<any[] | {
        _id: any;
        bbcDates: any;
        confirmed: any[];
    }>;
    getInventoryAgingPlot(borrowerId: string, rangeStart: any, rangeEnd: any): Promise<{
        name: string;
        data: number[];
    }[]>;
    getAllSkuValues(borrowerId: string, startDate: string, endDate: string): Promise<any[]>;
    getFirstSeenNew(sheetIds: mongoose.Types.ObjectId[], sku: string): Promise<{
        bbcDate: Date;
    }[]>;
    getInconsistentData(bbcDateId: string): Promise<{
        SKU: string;
        UNIT_COST: number;
        CALCULATED_UNIT_COST: number;
        DIFFERENCE: number;
        QTY: number;
        VALUE_CHANGE: number;
    }[]>;
    getUnitCostDifference(borrowerId: string): Promise<{
        SKU: string;
        CURRENT_UNIT_COST: number;
        LOWEST_UNIT_COST: number;
        LOWEST_UNIT_COST_DATE: string;
        DIFFERENCE: number;
        CURRENT_QTY: number;
        VALUE_CHANGE: number;
    }[]>;
    getExposures(borrowerId: string, useCustomerGroup: boolean): Promise<{
        allCategoryNames: any[];
        formattedSeriesData: {
            name: Date;
            data: any[];
        }[];
    }>;
    getInventoryTurn(borrowerId: string, startDate: string, endDate: string): Promise<{
        tableByUnit: any[];
        tableByValue: any[];
    }>;
    getInvoiceMovement(borrowerId: string, bbcDateId: string): Promise<{
        reportAdditions: any[];
        reportRemoved: any[];
    }>;
    getContras(borrowerId: string, startDate: string, endDate: string): Promise<any[]>;
    getExtension(borrowerId: string, startDate: string, endDate: string): Promise<any[]>;
    compareInventories(bbcDateId: string): Promise<{
        addedInventories: any[];
        removedInventories: any[];
    }>;
}
