let SnapshotEntryWithProofSchema: ZodObject<
  extendShape<
    {
      address: ZodUnion<
        [
          ZodType<string, ZodTypeDef, string>,
          ZodType<
            `0x${string}`,
            ZodTypeDef,
            `${string}.eth` | `${string}.cb.id`
          >,
        ]
      >;
      currencyAddress: ZodOptional<
        ZodDefault<
          ZodUnion<
            [
              ZodType<string, ZodTypeDef, string>,
              ZodType<
                `0x${string}`,
                ZodTypeDef,
                `${string}.eth` | `${string}.cb.id`
              >,
            ]
          >
        >
      >;
      maxClaimable: ZodDefault<
        ZodDefault<
          ZodUnion<
            [
              ZodEffects<
                ZodUnion<[ZodString, ZodNumber]>,
                string,
                string | number
              >,
              ZodLiteral<"unlimited">,
            ]
          >
        >
      >;
      price: ZodOptional<
        ZodDefault<
          ZodUnion<
            [
              ZodEffects<
                ZodUnion<[ZodString, ZodNumber]>,
                string,
                string | number
              >,
              ZodLiteral<"unlimited">,
            ]
          >
        >
      >;
    },
    { proof: ZodArray<ZodString, "many"> }
  >,
  "strip",
  ZodTypeAny,
  {
    address: string;
    currencyAddress?: string;
    maxClaimable: string;
    price?: string;
    proof: Array<string>;
  },
  {
    address: string;
    currencyAddress?: string;
    maxClaimable?: string | number;
    price?: string | number;
    proof: Array<string>;
  }
>;