import { TenantConnectionService } from '@/modules/tenant/tenant-connection.service';
import { BaseTenantService } from '@/common/base/service/base-crud.service';
import { PosSupplier } from './entities/pos-supplier.entity';
import { PosPurchaseOrder } from './entities/pos-purchase-order.entity';
import { PosGoodsReceipt } from './entities/pos-goods-receipt.entity';
import { PosInventoryMovement } from './entities/pos-inventory-movement.entity';
import { PosInventoryBalance } from './entities/pos-inventory-balance.entity';
export declare class PosProcurementService extends BaseTenantService<PosSupplier> {
    protected readonly tenantConnectionService: TenantConnectionService;
    protected entity: typeof PosSupplier;
    constructor(tenantConnectionService: TenantConnectionService);
    listSuppliers(filters: {
        search?: string;
        status?: string;
    }, page?: number, limit?: number, req?: any): Promise<import("../../../common/interfaces/pagination-result.interface").PaginationResult<PosSupplier> | {
        data: PosSupplier[];
        current_page: number;
        last_page: number;
        per_page: number;
        total: number;
    }>;
    createSupplier(data: Partial<PosSupplier>): Promise<PosSupplier>;
    updateSupplier(id: number, data: Partial<PosSupplier>): Promise<PosSupplier>;
    deleteSupplier(id: number): Promise<{
        message: string;
    }>;
    listPurchaseOrders(filters: {
        store_id?: number;
        supplier_id?: number;
        status?: string;
    }, page?: number, limit?: number, req?: any): Promise<import("../../../common/interfaces/pagination-result.interface").PaginationResult<any> | {
        data: any[];
        current_page: number;
        last_page: number;
        per_page: number;
        total: number;
    }>;
    createPurchaseOrder(data: Partial<PosPurchaseOrder>, userId?: number): Promise<PosPurchaseOrder>;
    listPurchaseOrderItems(purchaseOrderId: number): Promise<any[]>;
    getPurchaseOrder(id: number): Promise<any>;
    updatePurchaseOrderStatus(id: number, status: string, userId?: number): Promise<PosPurchaseOrder>;
    listGoodsReceipts(filters: {
        store_id?: number;
        supplier_id?: number;
        status?: string;
    }, page?: number, limit?: number, req?: any): Promise<import("../../../common/interfaces/pagination-result.interface").PaginationResult<any> | {
        data: any[];
        current_page: number;
        last_page: number;
        per_page: number;
        total: number;
    }>;
    createGoodsReceipt(data: Partial<PosGoodsReceipt>, userId?: number): Promise<PosGoodsReceipt>;
    listGoodsReceiptItems(goodsReceiptId: number): Promise<any[]>;
    getGoodsReceipt(id: number): Promise<any>;
    updateGoodsReceiptStatus(id: number, status: string, userId?: number): Promise<PosGoodsReceipt>;
    private postGoodsReceipt;
    inventoryReport(filters: {
        store_id?: number;
        location_id?: number;
        variant_id?: number;
        low_stock_only?: boolean;
    }): Promise<PosInventoryBalance[]>;
    inventoryMovementReport(filters: {
        store_id?: number;
        location_id?: number;
        variant_id?: number;
        movement_type?: string;
        date_from?: string;
        date_to?: string;
    }): Promise<PosInventoryMovement[]>;
    negativeInventoryReport(filters: {
        store_id?: number;
        location_id?: number;
    }): Promise<PosInventoryBalance[]>;
}
