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_ENDLESS = "e",
    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",
    FIRST_WEEKLY_COMMENT = "c",
    PLAY_COUNT_250_MILESTONE_2025 = "p1",
    PLAY_COUNT_1000_MILESTONE_2025 = "p2",
    PLAY_COUNT_10000_MILESTONE_2025 = "p3",
    TASTEMAKER = "t",
    COSIGN = "cs",
    PINNED_COMMENT = "cp",
    REMIX_CONTEST_WINNER = "w"
}
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_ENDLESS, ChallengeId.MOBILE_INSTALL, ChallengeId.REFERRED, ChallengeId.SEND_FIRST_TIP, ChallengeId.TRACK_UPLOADS, ChallengeId.PLAY_COUNT_250_MILESTONE_2025, ChallengeId.PLAY_COUNT_1000_MILESTONE_2025, ChallengeId.PLAY_COUNT_10000_MILESTONE_2025, ChallengeId.TASTEMAKER, ChallengeId.PINNED_COMMENT]>;
    /** 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_ENDLESS | ChallengeId.COMPLETE_PROFILE | ChallengeId.SEND_FIRST_TIP | ChallengeId.CREATE_FIRST_PLAYLIST | ChallengeId.PLAY_COUNT_250_MILESTONE_2025 | ChallengeId.PLAY_COUNT_1000_MILESTONE_2025 | ChallengeId.PLAY_COUNT_10000_MILESTONE_2025 | ChallengeId.TASTEMAKER | ChallengeId.PINNED_COMMENT;
    userId: number;
}, {
    challengeId: ChallengeId.TRACK_UPLOADS | ChallengeId.REFERRED | ChallengeId.MOBILE_INSTALL | ChallengeId.CONNECT_VERIFIED_ACCOUNT | ChallengeId.LISTEN_STREAK_ENDLESS | ChallengeId.COMPLETE_PROFILE | ChallengeId.SEND_FIRST_TIP | ChallengeId.CREATE_FIRST_PLAYLIST | ChallengeId.PLAY_COUNT_250_MILESTONE_2025 | ChallengeId.PLAY_COUNT_1000_MILESTONE_2025 | ChallengeId.PLAY_COUNT_10000_MILESTONE_2025 | ChallengeId.TASTEMAKER | ChallengeId.PINNED_COMMENT;
    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;
};
export declare const ClaimAllRewardsSchema: z.ZodUnion<[z.ZodObject<{
    userId: z.ZodEffects<z.ZodString, number, string>;
    challengeId: z.ZodOptional<z.ZodNativeEnum<typeof ChallengeId>>;
}, "strip", z.ZodTypeAny, {
    userId: number;
    challengeId?: ChallengeId | undefined;
}, {
    userId: string;
    challengeId?: ChallengeId | undefined;
}>, z.ZodObject<{
    challengeId: z.ZodNativeEnum<typeof ChallengeId>;
    specifier: z.ZodString;
}, "strip", z.ZodTypeAny, {
    challengeId: ChallengeId;
    specifier: string;
}, {
    challengeId: ChallengeId;
    specifier: string;
}>]>;
export type ClaimAllRewardsRequest = z.input<typeof ClaimAllRewardsSchema>;
type ClaimResult = {
    challengeId: string;
    specifier: string;
    amount: string;
    signatures: string[];
    error?: string;
};
export type ClaimAllResponseBody = {
    data: ClaimResult[];
};
export {};
