import { CreateLeaderboardParams, InitLeaderboardParams, LeaderboardData, IQueryScoreParams, IQueryScoreByPlayerParams, IScoreByUserResp, IPostScoreParams, IPostScoreResponse, IQueryScoresResp, IQueryLeaderboardsParams, GetLeaderboardDetailsInfo, SetGameMetadataParams, SetConfigMetadataParams, SetGlobalMetadataParams, IUpdateUserInfoParams, IUserLeaderboard } from '../types/ILeaderboard.types';
import { APIResponseType, RewardDistributionConfigParams, RewardDistributionData, RewardInCurrentPeriod, RewardInPeriod, GetRewardsByPeriod, RewardDistribution } from '../types';
import { CommonPaginateDataTypes } from '../types/ICommon.types';
declare class LeaderboardManager {
    private env;
    private apiKey;
    private leaderboardAPI;
    constructor(params: InitLeaderboardParams);
    createLeaderboard(leaderboardParams: CreateLeaderboardParams): Promise<LeaderboardData | null>;
    deleteLeaderboardById(leaderboardId: number): Promise<boolean>;
    getLeaderboards(params: IQueryLeaderboardsParams): Promise<APIResponseType<CommonPaginateDataTypes<LeaderboardData[]>>>;
    /**
     *
     * @param queryScoreParams
     * limit
     */
    queryScoresByLeaderboardId(queryScoreParams: IQueryScoreParams): Promise<APIResponseType<CommonPaginateDataTypes<IQueryScoresResp> | null>>;
    /**
     *
     * @param queryScoreByUserIdParams
     * limit
     */
    getScoresByPlayerId(queryScoreByUserIdParams: IQueryScoreByPlayerParams): Promise<APIResponseType<IScoreByUserResp | null>>;
    /**
     *
     * @param postScoreParams
     * limit
     */
    postPlayerScore(postScoreParams: IPostScoreParams): Promise<APIResponseType<IPostScoreResponse>>;
    createOrUpdateRewardDistributionConfig(createRewardConfig: RewardDistributionConfigParams): Promise<RewardDistribution>;
    getSimplifiedRewardConfig(getLeaderboardDetailsParams: GetLeaderboardDetailsInfo, period?: number): Promise<RewardDistribution>;
    getRewardDistributionInfo(getLeaderboardDetailsParams: GetLeaderboardDetailsInfo): Promise<RewardDistributionData>;
    getRewardsInCurrrentPeriod(getLeaderboardDetailsParams: GetLeaderboardDetailsInfo): Promise<RewardInCurrentPeriod>;
    getRewardsWithPeriod(getRewardWithPeriod: GetRewardsByPeriod): Promise<RewardInPeriod>;
    getLeaderboardDetailsInfo(getLeaderboardDetailsParams: GetLeaderboardDetailsInfo): Promise<LeaderboardData>;
    setGameMetadata(params: SetGameMetadataParams): Promise<LeaderboardData>;
    setConfigMetadata(params: SetConfigMetadataParams): Promise<LeaderboardData>;
    setGlobalMetadata(params: SetGlobalMetadataParams): Promise<LeaderboardData>;
    updateUserInfo(params: IUpdateUserInfoParams): Promise<IUserLeaderboard>;
}
export { LeaderboardManager };
