'use strict';

var setErc20Allowance = require('./setErc20Allowance-7f88666f.cjs.prod.js');
var index = require('./index-268c8762.cjs.prod.js');
var assertEnabled = require('./assertEnabled-313e06c0.cjs.prod.js');
var zod = require('zod');

/**
 * @internal
 */
const CommonWrappableSchema = /* @__PURE__ */(() => zod.z.object({
  contractAddress: index.AddressOrEnsSchema
}))();

/**
 * @internal
 */
const ERC20WrappableSchema = /* @__PURE__ */(() => CommonWrappableSchema.extend({
  quantity: index.AmountSchema
}))();

/**
 * @internal
 */
const ERC721WrappableSchema = /* @__PURE__ */(() => CommonWrappableSchema.extend({
  tokenId: index.BigNumberishSchema
}))();

/**
 * @internal
 */
const ERC1155WrappableSchema = /* @__PURE__ */(() => CommonWrappableSchema.extend({
  tokenId: index.BigNumberishSchema,
  quantity: index.BigNumberishSchema
}))();

/**
 * @internal
 */
const ERC20RewardSchema = /* @__PURE__ */(() => ERC20WrappableSchema.omit({
  quantity: true
}).extend({
  quantityPerReward: index.AmountSchema
}))();

/**
 * @internal
 */
const ERC721RewardSchema = ERC721WrappableSchema;

/**
 * @internal
 */
const ERC1155RewardSchema = /* @__PURE__ */(() => ERC1155WrappableSchema.omit({
  quantity: true
}).extend({
  quantityPerReward: index.BigNumberishSchema
}))();

/**
 * @internal
 */
const ERC20RewardContentsSchema = /* @__PURE__ */(() => ERC20RewardSchema.extend({
  totalRewards: index.BigNumberishSchema.default("1")
}))();

/**
 * @internal
 */
const ERC721RewardContentsSchema = ERC721RewardSchema;

/**
 * @internal
 */
const ERC1155RewardContentsSchema = /* @__PURE__ */(() => ERC1155RewardSchema.extend({
  totalRewards: index.BigNumberishSchema.default("1")
}))();

/**
 * @internal
 */
const PackRewardsSchema = /* @__PURE__ */(() => zod.z.object({
  erc20Rewards: zod.z.array(ERC20RewardSchema).default([]),
  erc721Rewards: zod.z.array(ERC721RewardSchema).default([]),
  erc1155Rewards: zod.z.array(ERC1155RewardSchema).default([])
}))();

/**
 * @internal
 */
const PackRewardsOutputSchema = /* @__PURE__ */(() => zod.z.object({
  erc20Rewards: zod.z.array(ERC20RewardContentsSchema).default([]),
  erc721Rewards: zod.z.array(ERC721RewardContentsSchema).default([]),
  erc1155Rewards: zod.z.array(ERC1155RewardContentsSchema).default([])
}))();

/**
 * @internal
 */
const PackMetadataInputSchema = /* @__PURE__ */(() => PackRewardsOutputSchema.extend({
  packMetadata: setErc20Allowance.NFTInputOrUriSchema,
  rewardsPerPack: index.BigNumberishSchema.default("1"),
  openStartTime: assertEnabled.RawDateSchema.default(new Date())
}))();

/**
 * @public
 */

/**
 * @public
 */

/**
 * @public
 */

/**
 * @public
 */

exports.ERC1155WrappableSchema = ERC1155WrappableSchema;
exports.ERC20WrappableSchema = ERC20WrappableSchema;
exports.ERC721WrappableSchema = ERC721WrappableSchema;
exports.PackMetadataInputSchema = PackMetadataInputSchema;
exports.PackRewardsOutputSchema = PackRewardsOutputSchema;
exports.PackRewardsSchema = PackRewardsSchema;
