import * as mongoDB from "mongodb";
import { DataObjectBase } from "./DataObjectBase";
import { RemoveStatusItem } from "./RemoveStatusItem";
import { DataItem } from "./DataItem";
import { DataValueType } from "./type/DataValueType";
interface StoreInventoryItem {
    catalogId: string;
    classId: string;
    amount: number;
}
interface CurrencyItem {
    key: string;
    value: number;
}
interface InAppPurchase {
    appleAppStoreId: string;
    googlePlayStoreId: string;
    facebookStoreId: string;
    analyticsPrice: number;
}
export declare class StoreInventory extends DataObjectBase {
    private static readonly _storeId;
    private static readonly _storeItemType;
    private static readonly _storeItems;
    private static readonly _storeCurrencies;
    private static readonly _priceCurrencies;
    private static readonly _inAppPurchase;
    private static readonly _storeDatas;
    private static readonly _removeStatus;
    private readonly storeId;
    private storeItems;
    private storeItemType;
    private storeCurrencies;
    private priceCurrencies;
    private inAppPurchase;
    private storeDatas;
    private removeStatus;
    constructor(result: mongoDB.WithId<mongoDB.Document>, collection: mongoDB.Collection<mongoDB.Document>);
    private setDocumentStoreInventory;
    getStoreId(): string;
    getAllStoreItems(): Array<StoreInventoryItem>;
    clearStoreItems(): void;
    hasStoreItem(catalogId: string, classId: string): boolean;
    setStoreItem(catalogId: string, classId: string, amount: number): void;
    removeStoreItem(catalogId: string, classId: string): void;
    getAllStoreCurrencies(): Array<CurrencyItem>;
    clearStoreCurrencies(): void;
    hasStoreCurrency(key: string): boolean;
    setStoreCurrency(key: string, value: number): void;
    removeStoreCurrency(key: string): void;
    getRemoveStatus(): RemoveStatusItem;
    setRemoveStatus(tsRemove: number, reason?: string): void;
    getAllPriceCurrencies(): Array<CurrencyItem>;
    clearPriceCurrencies(): void;
    getPriceCurrency(key: string): CurrencyItem;
    hasPriceCurrency(key: string): boolean;
    setPriceCurrency(key: string, value: number): void;
    removePriceCurrency(key: string): void;
    setInAppPurchase(inAppPurchase: InAppPurchase): void;
    getInAppPurchase(): InAppPurchase;
    getAllStoreDatas(): Array<DataItem>;
    clearStoreDatas(): void;
    hasStoreData(key: string): boolean;
    getStoreData(key: string): DataItem;
    setStoreData(key: string, value: DataValueType): void;
    removeStoreData(key: string): void;
    getStoreItemType(): number;
    setStoreItemType(storeItemType: number): void;
}
export {};
