import { z } from 'zod';
export declare enum ChallengeId {
    TRACK_UPLOADS = "track-upload",
    REFERRALS = "referrals",
    VERIFIED_REFERRALS = "ref-v",
    REFERRED = "referred",
    MOBILE_INSTALL = "mobile-install",
    CONNECT_VERIFIED_ACCOUNT = "connect-verified",
    LISTEN_STREAK = "listen-streak",
    COMPLETE_PROFILE = "profile-completion",
    SEND_FIRST_TIP = "send-first-tip",
    CREATE_FIRST_PLAYLIST = "first-playlist",
    AUDIO_MATCHING_BUYER = "b",
    AUDIO_MATCHING_SELLER = "s",
    TRENDING_TRACK = "tt",
    TRENDING_PLAYLIST = "tp",
    TRENDING_UNDERGROUND_TRACK = "tut"
}
export declare const GenerateSpecifierSchema: z.ZodUnion<[z.ZodObject<{
    /** The challenge identifier. As in, the challenge "name." */
    challengeId: z.ZodEnum<[ChallengeId.COMPLETE_PROFILE, ChallengeId.CONNECT_VERIFIED_ACCOUNT, ChallengeId.CREATE_FIRST_PLAYLIST, ChallengeId.LISTEN_STREAK, ChallengeId.MOBILE_INSTALL, ChallengeId.REFERRED, ChallengeId.SEND_FIRST_TIP, ChallengeId.TRACK_UPLOADS]>;
    /** The user ID of the user completing the challenge. */
    userId: z.ZodEffects<z.ZodString, number, string>;
}, "strip", z.ZodTypeAny, {
    userId: number;
    challengeId: ChallengeId.TRACK_UPLOADS | ChallengeId.REFERRED | ChallengeId.MOBILE_INSTALL | ChallengeId.CONNECT_VERIFIED_ACCOUNT | ChallengeId.LISTEN_STREAK | ChallengeId.COMPLETE_PROFILE | ChallengeId.SEND_FIRST_TIP | ChallengeId.CREATE_FIRST_PLAYLIST;
}, {
    userId: string;
    challengeId: ChallengeId.TRACK_UPLOADS | ChallengeId.REFERRED | ChallengeId.MOBILE_INSTALL | ChallengeId.CONNECT_VERIFIED_ACCOUNT | ChallengeId.LISTEN_STREAK | ChallengeId.COMPLETE_PROFILE | ChallengeId.SEND_FIRST_TIP | ChallengeId.CREATE_FIRST_PLAYLIST;
}>, z.ZodObject<{
    /** The challenge identifier. As in, the challenge "name." */
    challengeId: z.ZodEnum<[ChallengeId.REFERRALS, ChallengeId.VERIFIED_REFERRALS]>;
    /** The user ID of the user that was referred. */
    referredUserId: z.ZodEffects<z.ZodString, number, string>;
    /** The user ID of the user completing the challenge. */
    userId: z.ZodEffects<z.ZodString, number, string>;
}, "strip", z.ZodTypeAny, {
    userId: number;
    challengeId: ChallengeId.REFERRALS | ChallengeId.VERIFIED_REFERRALS;
    referredUserId: number;
}, {
    userId: string;
    challengeId: ChallengeId.REFERRALS | ChallengeId.VERIFIED_REFERRALS;
    referredUserId: string;
}>, z.ZodObject<{
    /** The challenge identifier. As in, the challenge "name." */
    challengeId: z.ZodEnum<[ChallengeId.AUDIO_MATCHING_BUYER]>;
    /** The user ID of the owner of the track purchased. */
    sellerUserId: z.ZodEffects<z.ZodString, number, string>;
    /** The track ID that was purchased. */
    trackId: z.ZodEffects<z.ZodString, number, string>;
}, "strip", z.ZodTypeAny, {
    challengeId: ChallengeId.AUDIO_MATCHING_BUYER;
    sellerUserId: number;
    trackId: number;
}, {
    challengeId: ChallengeId.AUDIO_MATCHING_BUYER;
    sellerUserId: string;
    trackId: string;
}>, z.ZodObject<{
    /** The challenge identifier. As in, the challenge "name." */
    challengeId: z.ZodEnum<[ChallengeId.AUDIO_MATCHING_SELLER]>;
    /** The user ID of the user that bought the track. */
    buyerUserId: z.ZodEffects<z.ZodString, number, string>;
    /** The track ID that was purchased. */
    trackId: z.ZodEffects<z.ZodString, number, string>;
}, "strip", z.ZodTypeAny, {
    challengeId: ChallengeId.AUDIO_MATCHING_SELLER;
    trackId: number;
    buyerUserId: number;
}, {
    challengeId: ChallengeId.AUDIO_MATCHING_SELLER;
    trackId: string;
    buyerUserId: string;
}>]>;
export declare type GenerateSpecifierRequest = z.input<typeof GenerateSpecifierSchema>;
export declare const ClaimRewardsSchema: z.ZodObject<{
    /** The challenge identifier. As in, the challenge "name." */
    challengeId: z.ZodNativeEnum<typeof ChallengeId>;
    /**
     * Identifier for the completed challenge instance.
     *
     * @see {@link ChallengesApi.generateSpecifier}
     */
    specifier: z.ZodString;
    /** Reward amount, in either wAUDIO (number) or wAUDIO Wei (bigint) */
    amount: z.ZodUnion<[z.ZodBigInt, z.ZodNumber]>;
    /** The user ID of the claimee. */
    userId: z.ZodEffects<z.ZodString, number, string>;
}, "strict", z.ZodTypeAny, {
    userId: number;
    amount: number | bigint;
    challengeId: ChallengeId;
    specifier: string;
}, {
    userId: string;
    amount: number | bigint;
    challengeId: ChallengeId;
    specifier: string;
}>;
export declare type ClaimRewardsRequest = z.input<typeof ClaimRewardsSchema>;
