import QuestSdk from "../..";
import { IGetRequestOptions, IPostRequestOptions } from "../../types/common.types";
import { IClaimMultipleQuestRewards, IClaimMultipleQuestRewardsResponse, IClaimQuestRewards, IClaimQuestRewardsResponse, ICreateMetricQuest, ICreateMetricQuestResponse, ICreateQuest, ICreateQuestResponse, IDeleteQuest, IDeleteQuestResponse, IGetAllQuests, IGetAllQuestsForEntity, IGetAllQuestsForEntityResponse, IGetAllQuestsResponse, IGetMetricQuestDetails, IGetMetricQuestDetailsResponse, IGetMultipleQuestDetails, IGetMultipleQuestDetailsResponse, IGetOrSetNewReferralCodeForQuestAndUser, IGetOrSetNewReferralCodeForQuestAndUserResponse, IGetQuestDetails, IGetQuestDetailsResponse, IGetQuestSubmissions, IGetQuestSubmissionsResponse, IGetQuestSummary, IGetQuestSummaryResponse, IGetReferralLeaderboard, IGetReferralLeaderboardResponse, IUpdateQuest, IUpdateQuestResponse, IVerifyMultipleQuestCriteriaForAUser, IVerifyMultipleQuestCriteriaForAUserResponse, IVerifyQuestCriteriaForAUser, IVerifyQuestCriteriaForAUserResponse } from "../../types/quest.types";
export declare class Quest {
    questSdk: QuestSdk;
    constructor(questSdk: QuestSdk);
    getAllQuests({ category, limit, page }?: IGetAllQuests, options?: IGetRequestOptions): Promise<IGetAllQuestsResponse>;
    getAllQuestsForEntity({ category, limit, page, entityId }?: IGetAllQuestsForEntity, options?: IGetRequestOptions): Promise<IGetAllQuestsForEntityResponse>;
    getQuestDetails({ questId, detailsPage, entityId, prefixBadgeIpfs }: IGetQuestDetails, options?: IGetRequestOptions): Promise<IGetQuestDetailsResponse>;
    getQuestSummary({ questId, entityId }: IGetQuestSummary, options?: IGetRequestOptions): Promise<IGetQuestSummaryResponse>;
    createQuest({ title, eligibilityCriterias, rewards, description, endsAt, entityId, hasReferral, imageURL, isPrivate, referralXP, theme, dependentQuestIDs, isDependentCriterias, isMetricQuest, }: ICreateQuest, options?: IPostRequestOptions): Promise<ICreateQuestResponse>;
    updateQuest({ questId, title, description, eligibilityCriterias, endsAt, entityId, hasReferral, imageURL, isPrivate, referralXP, rewards, theme, rewardIdsToDelete, eligibilityCriteriaIdsToDelete, isMetricQuest, }: IUpdateQuest, options?: IPostRequestOptions): Promise<IUpdateQuestResponse>;
    deleteQuest({ questId, entityId }: IDeleteQuest, options?: IPostRequestOptions): Promise<IDeleteQuestResponse>;
    verifyQuestCriteriaForAUser({ questId, criteriaId, entityId, answer }: IVerifyQuestCriteriaForAUser, options?: IPostRequestOptions): Promise<IVerifyQuestCriteriaForAUserResponse>;
    verifyMultipleQuestCriteriaForAUser({ questId, entityId, criterias, referralCode, session }: IVerifyMultipleQuestCriteriaForAUser, options?: IPostRequestOptions): Promise<IVerifyMultipleQuestCriteriaForAUserResponse>;
    claimQuestRewards({ questId, referralCode, userIds, entityId }: IClaimQuestRewards, options?: IPostRequestOptions): Promise<IClaimQuestRewardsResponse>;
    claimMultipleQuestRewards({ questIds, referralCode, entityId, addToDynamicNFT }: IClaimMultipleQuestRewards, options?: IPostRequestOptions): Promise<IClaimMultipleQuestRewardsResponse>;
    getOrSetNewReferralCodeForQuestAndUser({ questId, entityId }: IGetOrSetNewReferralCodeForQuestAndUser, options?: IGetRequestOptions): Promise<IGetOrSetNewReferralCodeForQuestAndUserResponse>;
    getReferralLeaderboard({ questId, entityId }: IGetReferralLeaderboard, options?: IGetRequestOptions): Promise<IGetReferralLeaderboardResponse>;
    getQuestSubmissions({ questId, parentEntityId, entityId }: IGetQuestSubmissions, options?: IGetRequestOptions): Promise<IGetQuestSubmissionsResponse>;
    getMultipleQuestDetails({ entityId, limit, detailsPage, page }?: IGetMultipleQuestDetails, options?: IGetRequestOptions): Promise<IGetMultipleQuestDetailsResponse>;
    createMetricQuest({ title, description, metric, rewards, autoClaimRewards, repeatRewardsBasedOnMetricCount, endsAt, entityId, metadata, priority, }: ICreateMetricQuest, options?: IPostRequestOptions): Promise<ICreateMetricQuestResponse>;
    getMetricQuestDetails({ questId, entityId }: IGetMetricQuestDetails, options?: IGetRequestOptions): Promise<IGetMetricQuestDetailsResponse>;
}
