import { ProductBase } from '../product/product.base';
import { ProductWithInventoryRepository } from './product-with-inventory.repository';
import { ProductWithInventoryModel } from '../../entities/product-with-inventory.entity';
import { IProductWithInventoryAttrBase } from '../../interfaces';
import { LoginUser } from '@tomei/sso';
export declare abstract class ProductWithInventoryBase extends ProductBase {
    ObjectType: string;
    private _UOM;
    private _TotalUnits;
    private _TotalUnitsAvailable;
    private _TotalUnitsInCurrentOrder;
    private _TotalUnitsSold;
    private _TotalUnitsReserved;
    private _TotalUnitsOnConsignment;
    private _TotalUnitsUnderMaintenance;
    private _TotalUnitsVoid;
    private _TotalUnitsInTransit;
    private _TotalUnitsBackOrdered;
    private _TotalUnitsPreOrdered;
    private _StockLowAlertLevel;
    private _StockReorderLevel;
    private _BufferStockLevel;
    protected static _ProductWithInventoryRepository: ProductWithInventoryRepository;
    constructor(product?: IProductWithInventoryAttrBase);
    get ProductId(): string;
    set ProductId(value: string);
    get Name(): string;
    set Name(value: string);
    get Description(): string;
    set Description(value: string);
    get SKU(): string;
    set SKU(value: string);
    get Type(): string;
    set Type(value: string);
    get Remark(): string;
    set Remark(value: string);
    get IsTaxableYN(): string;
    set IsTaxableYN(value: string);
    get TaxCode(): string;
    set TaxCode(value: string);
    get IsPriceInclusiveTaxYN(): string;
    set IsPriceInclusiveTaxYN(value: string);
    get Status(): string;
    protected set Status(value: any);
    get VerifiedYN(): string;
    protected set VerifiedYN(value: any);
    get VerifiedAt(): Date;
    protected set VerifiedAt(value: any);
    get VerifiedById(): string;
    protected set VerifiedById(value: any);
    get VariantLevels(): number;
    set VariantLevels(value: number);
    get VariantTypeLevel1(): string;
    set VariantTypeLevel1(value: string);
    get VariantTypeLevel2(): string;
    set VariantTypeLevel2(value: string);
    get VariantTypeLevel3(): string;
    set VariantTypeLevel3(value: string);
    get CreatedAt(): Date;
    protected set CreatedAt(value: any);
    get CreatedById(): string;
    protected set CreatedById(value: any);
    get UpdatedAt(): Date;
    protected set UpdatedAt(value: any);
    get UpdatedById(): string;
    protected set UpdatedById(value: any);
    get UpdatedSSYN(): string;
    protected set UpdatedSSYN(value: any);
    get UOM(): string;
    set UOM(value: string);
    get TotalUnits(): number;
    set TotalUnits(value: number);
    get TotalUnitsAvailable(): number;
    protected set TotalUnitsAvailable(value: number);
    get TotalUnitsInCurrentOrder(): number;
    protected set TotalUnitsInCurrentOrder(value: number);
    get TotalUnitsSold(): number;
    protected set TotalUnitsSold(value: number);
    get TotalUnitsReserved(): number;
    protected set TotalUnitsReserved(value: number);
    get TotalUnitsOnConsignment(): number;
    protected set TotalUnitsOnConsignment(value: number);
    get TotalUnitsUnderMaintenance(): number;
    protected set TotalUnitsUnderMaintenance(value: number);
    get TotalUnitsVoid(): number;
    protected set TotalUnitsVoid(value: number);
    get TotalUnitsInTransit(): number;
    protected set TotalUnitsInTransit(value: number);
    get TotalUnitsBackOrdered(): number;
    protected set TotalUnitsBackOrdered(value: number);
    get TotalUnitsPreOrdered(): number;
    protected set TotalUnitsPreOrdered(value: number);
    get StockLowAlertLevel(): number;
    set StockLowAlertLevel(value: number);
    get StockReorderLevel(): number;
    set StockReorderLevel(value: number);
    get BufferStockLevel(): number;
    set BufferStockLevel(value: number);
    create(loginUser: LoginUser, dbTransaction?: any): Promise<ProductWithInventoryModel | any>;
    deactivate(loginUser: LoginUser, dbTransaction?: any): Promise<void>;
    verify(loginUser: LoginUser, dbTransaction?: any): Promise<void>;
    delete(loginUser: LoginUser, dbTransaction?: any): Promise<void>;
    activate(loginUser: LoginUser, dbTransaction?: any): Promise<void>;
}
