import { TenantConnectionService } from '@/modules/tenant/tenant-connection.service';
import { BaseTenantService } from '@/common/base/service/base-crud.service';
import { PosProduct } from './entities/pos-product.entity';
import { PosBarcode } from './entities/pos-barcode.entity';
import { PosCategory } from './entities/pos-category.entity';
import { PosProductVariant } from './entities/pos-product-variant.entity';
import { PosPriceBook } from './entities/pos-price-book.entity';
import { PosPriceBookItem } from './entities/pos-price-book-item.entity';
import { CreatePosProductFullDto, UpdatePosProductFullDto } from './dto/pos-catalog.dto';
export declare class PosCatalogService extends BaseTenantService<PosProduct> {
    protected readonly tenantConnectionService: TenantConnectionService;
    protected entity: typeof PosProduct;
    constructor(tenantConnectionService: TenantConnectionService);
    resolveBarcode(code: string): Promise<PosBarcode | null>;
    listCategories(): Promise<PosCategory[]>;
    createCategory(data: Partial<PosCategory>): Promise<PosCategory>;
    updateCategory(id: number, data: Partial<PosCategory>): Promise<PosCategory>;
    listProducts(): Promise<PosProduct[]>;
    createProduct(data: Partial<PosProduct>): Promise<PosProduct>;
    updateProduct(id: number, data: Partial<PosProduct>): Promise<PosProduct>;
    deleteProduct(id: number): Promise<{
        deleted: boolean;
        id: number;
    }>;
    listVariants(productId?: number): Promise<PosProductVariant[]>;
    createVariant(data: any): Promise<any>;
    updateVariant(id: number, data: any): Promise<PosProductVariant>;
    deleteVariant(id: number): Promise<{
        deleted: boolean;
        id: number;
    }>;
    listBarcodes(variantId?: number): Promise<PosBarcode[]>;
    createBarcode(data: Partial<PosBarcode>): Promise<PosBarcode>;
    updateBarcode(id: number, data: Partial<PosBarcode>): Promise<PosBarcode>;
    listPriceBooks(): Promise<PosPriceBook[]>;
    createPriceBook(data: Partial<PosPriceBook>): Promise<PosPriceBook>;
    updatePriceBook(id: number, data: Partial<PosPriceBook>): Promise<PosPriceBook>;
    listPriceBookItems(priceBookId: number): Promise<PosPriceBookItem[]>;
    upsertPriceBookItem(data: Partial<PosPriceBookItem>): Promise<PosPriceBookItem>;
    createProductFull(dto: CreatePosProductFullDto): Promise<any>;
    getProductDetail(id: number): Promise<any>;
    updateProductFull(id: number, dto: UpdatePosProductFullDto): Promise<any>;
    private updateEntity;
}
