import * as mongoDB from "mongodb";
import { DataItem } from "./DataItem";
import { DataObjectBase } from "./DataObjectBase";
import { OwnerItem } from "./OwnerItem";
import { RemoveStatusItem } from "./RemoveStatusItem";
import { StatisticsItem } from "./StatisticsItem";
import { DataValueType } from "./type/DataValueType";
export declare class Inventory extends DataObjectBase {
    private static readonly _amount;
    private static readonly _itemId;
    private static readonly _classId;
    private static readonly _catalogId;
    private static readonly _itemType;
    private static readonly _owner;
    private static readonly _itemDatas;
    private static readonly _itemStatistics;
    private static readonly _removeStatus;
    private readonly itemId;
    private readonly classId;
    private readonly catalogId;
    private readonly itemType;
    private amount;
    private owner;
    private itemDatas;
    private itemStatistics;
    private removeStatus;
    constructor(result: mongoDB.WithId<mongoDB.Document>, collection: mongoDB.Collection<mongoDB.Document>);
    private setDocumentInventory;
    getItemId(): string;
    getClassId(): string;
    getCatalogId(): string;
    getItemType(): number;
    getAmount(): number;
    setAmount(amount: number): void;
    getOwner(): OwnerItem;
    setOwner(ownerId: string, ownerType: number): void;
    getAllItemDatas(): Array<DataItem>;
    hasItemData(key: string): boolean;
    getItemData(key: string): DataItem;
    setItemData(key: string, value: DataValueType): void;
    removeItemData(key: string): void;
    getAllItemStatistics(): Map<string, StatisticsItem>;
    hasItemStatistics(key: string): boolean;
    getItemStatistics(key: string): StatisticsItem;
    setItemStatistics(key: string, value: number, tsLastUpdate: number): void;
    removeItemStatistics(key: string): void;
    getRemoveStatus(): RemoveStatusItem;
    setRemoveStatus(tsRemove: number, reason?: string): void;
}
