import { z } from 'zod';
export declare enum ChallengeId {
    TRACK_UPLOADS = "u",
    REFERRALS = "r",
    VERIFIED_REFERRALS = "rv",
    REFERRED = "rd",
    MOBILE_INSTALL = "m",
    CONNECT_VERIFIED_ACCOUNT = "v",
    LISTEN_STREAK = "l",
    COMPLETE_PROFILE = "p",
    SEND_FIRST_TIP = "ft",
    CREATE_FIRST_PLAYLIST = "fp",
    AUDIO_MATCHING_BUYER = "b",
    AUDIO_MATCHING_SELLER = "s",
    TRENDING_TRACK = "tt",
    TRENDING_PLAYLIST = "tp",
    TRENDING_UNDERGROUND_TRACK = "tut",
    ONE_SHOT = "o"
}
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, {
    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: 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;
}>, z.ZodObject<{
    /** The challenge identifier. As in, the challenge "name." */
    challengeId: z.ZodEnum<[ChallengeId.REFERRALS, ChallengeId.VERIFIED_REFERRALS]>;
    /** The user ID of the user completing the challenge. */
    userId: z.ZodEffects<z.ZodString, number, string>;
    /** The user ID of the user that was referred. */
    referredUserId: z.ZodEffects<z.ZodString, number, string>;
}, "strip", z.ZodTypeAny, {
    challengeId: ChallengeId.REFERRALS | ChallengeId.VERIFIED_REFERRALS;
    userId: number;
    referredUserId: number;
}, {
    challengeId: ChallengeId.REFERRALS | ChallengeId.VERIFIED_REFERRALS;
    userId: string;
    referredUserId: string;
}>, z.ZodObject<{
    /** The challenge identifier. As in, the challenge "name." */
    challengeId: z.ZodEnum<[ChallengeId.AUDIO_MATCHING_BUYER, ChallengeId.AUDIO_MATCHING_SELLER]>;
    /** The user ID of the user completing the challenge. */
    userId: z.ZodEffects<z.ZodString, number, string>;
    /** The content ID that was purchased. */
    contentId: z.ZodEffects<z.ZodString, number, string>;
}, "strip", z.ZodTypeAny, {
    challengeId: ChallengeId.AUDIO_MATCHING_BUYER | ChallengeId.AUDIO_MATCHING_SELLER;
    userId: number;
    contentId: number;
}, {
    challengeId: ChallengeId.AUDIO_MATCHING_BUYER | ChallengeId.AUDIO_MATCHING_SELLER;
    userId: string;
    contentId: string;
}>]>;
export 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, {
    challengeId: ChallengeId;
    specifier: string;
    amount: number | bigint;
    userId: number;
}, {
    challengeId: ChallengeId;
    specifier: string;
    amount: number | bigint;
    userId: string;
}>;
export type ClaimRewardsRequest = z.input<typeof ClaimRewardsSchema>;
export type AttestationTransactionSignature = {
    transactionSignature: string;
    antiAbuseOracleEthAddress: string;
};
export type AAOErrorResponse = {
    aaoErrorCode: number;
};
