import * as mongoDB from "mongodb";
import { BanItem } from "./BanItem";
import { DataItem } from "./DataItem";
import { DataObjectBase } from "./DataObjectBase";
import { CurrencyItem } from "./CurrencyItem";
import { StatisticsItem } from "./StatisticsItem";
import { DataValueType } from "./type/DataValueType";
export declare class PlayerBase extends DataObjectBase {
    private static readonly _playerBan;
    private static readonly _playerCurrencies;
    private static readonly _playerStatistics;
    private static readonly _playerDatas;
    private static readonly _ipAddressCreate;
    private static readonly _countryCode;
    private static readonly _tsLastLogin;
    private playerBan;
    private playerCurrencies;
    private playerStatistics;
    private playerDatas;
    private ipAddressCreate;
    private countryCode;
    private tsLastLogin;
    constructor(result: mongoDB.WithId<mongoDB.Document>, collection: mongoDB.Collection<mongoDB.Document>);
    private setDocumentPlayerBase;
    getPlayerBan(): BanItem;
    setPlayerBan(tsExpire: number, reason: string): void;
    getAllPlayerDatas(): Array<DataItem>;
    hasPlayerData(key: string): boolean;
    getPlayerData(key: string): DataItem;
    setPlayerData(key: string, value: DataValueType): void;
    removePlayerData(key: string): void;
    getAllPlayerCurrencies(): Map<string, CurrencyItem>;
    hasPlayerCurrency(key: string): boolean;
    getPlayerCurrency(key: string): CurrencyItem;
    setPlayerCurrency(key: string, value: number): void;
    removePlayerCurrency(key: string): void;
    getAllPlayerStatistics(): Map<string, StatisticsItem>;
    hasPlayerStatistics(key: string): boolean;
    getPlayerStatistics(key: string): StatisticsItem;
    setPlayerStatistics(key: string, value: number, tsLastUpdate: number): void;
    removePlayerStatistics(key: string): void;
    getIpAddressCreate(): string;
    setIpAddressCreate(ipAddressCreate: string): void;
    getCountryCode(): string;
    setCountryCode(countryCode: string): void;
    getTsLastLogin(): number;
    setTsLastLogin(tsLastLogin: number): void;
}
