import { EnvTypes } from 'myria-core-sdk';
import { CreateLeaderboardParams, LeaderboardData, IPostScoreParams, IQueryScoreByPlayerParams, IQueryScoreParams, IScoreByUserResp, IPostScoreResponse, IQueryScoresResp, IQueryLeaderboardsParams, GetLeaderboardDetailsInfo, SetGameMetadataParams, SetConfigMetadataParams, SetGlobalMetadataParams, IUpdateUserInfoParams, IUserLeaderboard } from '../../types/ILeaderboard.types';
import { APIResponseType, GetRewardData, GetRewardsParams, PostClaimRewardParams, PreClaimData, PreClaimParams, RewardData, RewardDistributionConfigParams } from '../../types';
import { CommonPaginateDataTypes } from '../../types/ICommon.types';
export declare class LeaderboardAPI {
    private axiosInstance;
    private axiosWrapper;
    constructor(env: EnvTypes);
    createLeaderboard(leaderboardParams: CreateLeaderboardParams, developerApiKey: string): Promise<APIResponseType<LeaderboardData | null>>;
    getLeaderboards(queryParams: IQueryLeaderboardsParams, developerApiKey: string): Promise<APIResponseType<CommonPaginateDataTypes<LeaderboardData[]>>>;
    deleteLeaderboardById(leaderboardId: number, developerApiKey: string): Promise<boolean>;
    getScoresByLeaderboardId(queryScoreParams: IQueryScoreParams, developerApiKey: string): Promise<APIResponseType<CommonPaginateDataTypes<IQueryScoresResp> | null>>;
    getScoresByLeaderboardIdAndUserId(queryScoreByUserIdParams: IQueryScoreByPlayerParams, developerApiKey: string): Promise<APIResponseType<IScoreByUserResp>>;
    postNewScore(postScoreParam: IPostScoreParams, developerApiKey: string): Promise<APIResponseType<IPostScoreResponse>>;
    updateRewardDistributionConfig(updateRewardsConfig: RewardDistributionConfigParams, developerApiKey: string): Promise<APIResponseType<RewardData[]>>;
    getLeaderboardDetailsInfo(getLeaderboardDetailsParams: GetLeaderboardDetailsInfo, developerApiKey: string): Promise<APIResponseType<LeaderboardData>>;
    updateGameMetadata(params: SetGameMetadataParams, developerApiKey: string): Promise<APIResponseType<LeaderboardData>>;
    updateConfigMetadata(params: SetConfigMetadataParams, developerApiKey: string): Promise<APIResponseType<LeaderboardData>>;
    updateGlobalMetadata(params: SetGlobalMetadataParams, developerApiKey: string): Promise<APIResponseType<LeaderboardData>>;
    getRewardData(params: GetRewardsParams): Promise<APIResponseType<GetRewardData>>;
    preClaim(params: PreClaimParams): Promise<APIResponseType<PreClaimData>>;
    postClaimReward(params: PostClaimRewardParams): Promise<APIResponseType<RewardData[]>>;
    updateUserInfo(params: IUpdateUserInfoParams, apiKey: string): Promise<APIResponseType<IUserLeaderboard>>;
}
