import { SAP_B1_Config, BusinessPartner, Item, SalesOrder, PurchaseOrder, GoodsReceipt, Invoice, Warehouse, PriceList, ItemWarehouseInfo, ItemPrice, ODataResponse, QueryParams, SAPEntityType, SessionInfo } from './types.js'; export declare class SAPClient { private sessionManager; constructor(config: SAP_B1_Config); /** * Login to SAP B1 */ login(): Promise; /** * Logout from SAP B1 */ logout(): Promise; /** * Check session status */ getSessionStatus(): Promise<{ valid: boolean; sessionInfo: SessionInfo | null; }>; /** * Get business partners with optional filters */ getBusinessPartners(params?: QueryParams & { cardType?: 'cCustomer' | 'cSupplier' | 'cLid'; }): Promise; /** * Get business partners with full OData response including pagination info */ getBusinessPartnersWithPagination(params?: QueryParams & { cardType?: 'cCustomer' | 'cSupplier' | 'cLid'; }): Promise>; /** * Get a single business partner by code */ getBusinessPartner(cardCode: string, params?: Pick): Promise; /** * Create a new business partner */ createBusinessPartner(businessPartner: Omit): Promise; /** * Update an existing business partner */ updateBusinessPartner(cardCode: string, updates: Partial): Promise; /** * Get items with optional filters */ getItems(params?: QueryParams): Promise; /** * Get items with full OData response including pagination info */ getItemsWithPagination(params?: QueryParams): Promise>; /** * Get item groups (product categories) with optional filters */ getItemGroups(params?: QueryParams): Promise; /** * Get item groups with full OData response including pagination info */ getItemGroupsWithPagination(params?: QueryParams): Promise>; /** * Get a single item by code */ getItem(itemCode: string, params?: Pick): Promise; /** * Create a new item */ createItem(item: Omit): Promise; /** * Update an existing item */ updateItem(itemCode: string, updates: Partial): Promise; /** * Get sales orders with optional filters */ getSalesOrders(params?: QueryParams): Promise; /** * Get sales orders with full OData response including pagination info */ getSalesOrdersWithPagination(params?: QueryParams): Promise>; /** * Get a single sales order by DocEntry or DocNum */ getSalesOrder(identifier: { docEntry?: number; docNum?: number; }, params?: Pick): Promise; /** * Create a new sales order */ createSalesOrder(order: Omit): Promise; /** * Update an existing sales order */ updateSalesOrder(docEntry: number, updates: Partial): Promise; /** * Get purchase orders with optional filters */ getPurchaseOrders(params?: QueryParams): Promise; /** * Get purchase orders with full OData response including pagination info */ getPurchaseOrdersWithPagination(params?: QueryParams): Promise>; /** * Get a single purchase order by DocEntry or DocNum */ getPurchaseOrder(identifier: { docEntry?: number; docNum?: number; }, params?: Pick): Promise; /** * Create a new purchase order */ createPurchaseOrder(order: Omit): Promise; /** * Update an existing purchase order */ updatePurchaseOrder(docEntry: number, updates: Partial): Promise; /** * Get goods receipts with optional filters */ getGoodsReceipts(params?: QueryParams): Promise; /** * Get goods receipts with full OData response including pagination info */ getGoodsReceiptsWithPagination(params?: QueryParams): Promise>; /** * Get a single goods receipt by DocEntry or DocNum */ getGoodsReceipt(identifier: { docEntry?: number; docNum?: number; }, params?: Pick): Promise; /** * Get invoices with optional filters */ getInvoices(params?: QueryParams): Promise; /** * Get invoices with full OData response including pagination info */ getInvoicesWithPagination(params?: QueryParams): Promise>; /** * Get a single invoice by DocEntry or DocNum */ getInvoice(identifier: { docEntry?: number; docNum?: number; }, params?: Pick): Promise; /** * Create a new invoice */ createInvoice(invoice: Omit): Promise; /** * Update an existing invoice */ updateInvoice(docEntry: number, updates: Partial): Promise; /** * Execute a custom OData query */ executeQuery(entityType: SAPEntityType, params?: QueryParams): Promise; /** * Execute a cross-join query for complex data relationships */ executeCrossJoinQuery(query: string): Promise; /** * Test connection to SAP B1 */ testConnection(): Promise<{ success: boolean; message: string; sessionInfo?: SessionInfo; }>; /** * Build query string from parameters */ private buildQueryString; /** * Get warehouses with optional filters */ getWarehouses(params?: QueryParams): Promise; /** * Get warehouses with full OData response including pagination info */ getWarehousesWithPagination(params?: QueryParams): Promise>; /** * Get a single warehouse by WarehouseCode */ getWarehouse(warehouseCode: string, params?: Pick): Promise; /** * Get price lists with optional filters */ getPriceLists(params?: QueryParams): Promise; /** * Get price lists with full OData response including pagination info */ getPriceListsWithPagination(params?: QueryParams): Promise>; /** * Get a single price list by PriceListNo */ getPriceList(priceListNo: number, params?: Pick): Promise; /** * Get item stock levels for a specific item and warehouse */ getItemStock(itemCode: string, warehouseCode: string, params?: Pick): Promise; /** * Get all stock levels for a specific item across all warehouses */ getItemStockAll(itemCode: string, params?: QueryParams): Promise; /** * Get item price for a specific item and price list */ getItemPrice(itemCode: string, priceListId: number, params?: Pick): Promise; /** * Get all prices for a specific item across all price lists */ getItemPricesAll(itemCode: string, params?: QueryParams): Promise; }