import { Model } from "mongoose";
import { BatchDocument } from "./schemas/batch.schema";
import { ItemDocument } from "./schemas/item.schema";
import { StockTransactionDocument } from "./schemas/stock-transaction.schema";
import { WarehouseDocument } from "./schemas/warehouse.schema";
export interface ReportRow {
    id: string;
    date: string;
    type: "inbound" | "outbound";
    warehouse: string | null;
    itemCode: string | null;
    itemName: string | null;
    batchNumber: string | null;
    quantityMt: number;
    approvalStatus: string;
}
export interface ReportFilters {
    warehouseNames?: string[];
    type?: "inbound" | "outbound" | "all";
    fromDate?: string;
    toDate?: string;
}
export declare class ReportsService {
    private readonly txModel;
    private readonly warehouseModel;
    private readonly itemModel;
    private readonly batchModel;
    constructor(txModel: Model<StockTransactionDocument>, warehouseModel: Model<WarehouseDocument>, itemModel: Model<ItemDocument>, batchModel: Model<BatchDocument>);
    getTransactionReport(filters: ReportFilters): Promise<ReportRow[]>;
    getSummaryByWarehouse(filters: ReportFilters): Promise<{
        warehouse: string;
        totalInbound: number;
        totalOutbound: number;
        net: number;
    }[]>;
}
