import { KiotVietClient } from '../client'; import { KiotVietListResponse, Product, ProductCreateParams, ProductUpdateParams } from '../types'; export declare class ProductHandler { private client; constructor(client: KiotVietClient); /** * List products with optional filtering * @param params Filter parameters (pageSize, currentItem, code, name, categoryId, etc.) */ list(params?: Record): Promise>; /** * Get a product by its ID * @param productId The ID of the product to retrieve */ getById(productId: number): Promise; /** * Create a new product * @param productData The product data to create */ create(productData: ProductCreateParams): Promise; /** * Update an existing product * @param productId The ID of the product to update * @param productData The product data to update */ update(productId: number, productData: Partial): Promise; /** * Delete a product * @param productId The ID of the product to delete */ delete(productId: number): Promise; /** * Get products by category ID * @param categoryId The ID of the category * @param params Additional filter parameters */ getByCategory(categoryId: number, params?: Record): Promise>; /** * Search products by name or code * @param query Search query (name or code) * @param params Additional filter parameters */ search(query: string, params?: Record): Promise>; /** * Get a product by its code * @param code The product code */ getByCode(code: string): Promise; /** * Get all product attributes with their distinct values */ getAttributes(): Promise; /** * Add multiple products at once * @param products Array of product data to create */ bulkCreate(products: ProductCreateParams[]): Promise; /** * Update multiple products at once * @param products Array of product data to update */ bulkUpdate(products: ProductUpdateParams[]): Promise; /** * Get product inventory levels across branches * @param params Query parameters (branchIds, lastModifiedFrom, etc) */ getInventoryLevels(params?: Record): Promise; getByBarcode(barcode: string): Promise; }