/**
 * @typedef {object} ShopeeVideoRequestOptions
 * @property {string} [errorMsg]
 * @property {string} [dataPath]
 * @property {*} [defaultValue]
 * @property {object} [errorContext]
 * @property {import('axios').AxiosInstance} [client]
 */

/**
 * @typedef {object} ShopeeVideoProduct
 * @property {number} itemId
 * @property {string} cover
 * @property {number} status
 * @property {number} minPrice
 * @property {number} maxPrice
 * @property {number} shopId
 * @property {number} stock
 * @property {string} name
 */

/**
 * @typedef {object} ShopeeVideoListItem
 * @property {number} videoId
 * @property {string} caption
 * @property {string} cover
 * @property {string} url
 * @property {string} mmsVid
 * @property {string} encodePostId
 * @property {number} duration
 * @property {number} ptime
 * @property {number} views
 * @property {number} likes
 * @property {number} comments
 * @property {number} state
 * @property {boolean} hasPerformance
 * @property {ShopeeVideoProduct[]} productList
 */

/**
 * @typedef {object} ShopeeVideoListResult
 * @property {number} total
 * @property {number} totalPage
 * @property {number} page
 * @property {number} pageSize
 * @property {ShopeeVideoListItem[]} list
 */

/**
 * @typedef {object} ShopeeVideoItemListResult
 * @property {number} total
 * @property {number} totalPage
 * @property {number} page
 * @property {number} pageSize
 * @property {ShopeeVideoProduct[]} items
 */

/**
 * @typedef {object} ShopeeVideoTaskItem
 * @property {string} taskId
 * @property {string} mmsVid
 * @property {{ allowDuet: boolean, allowStitch: boolean }} allowInfo
 * @property {number} coverFrameTime
 * @property {string} cover
 * @property {string} caption
 * @property {ShopeeVideoProduct[]} productList
 * @property {{ scheduledPost: boolean, scheduledTime?: number }} scheduledInfo
 * @property {number} duration
 * @property {number} width
 * @property {number} height
 */

/**
 * @typedef {object} ShopeeVideoTaskResult
 * @property {string} taskId
 * @property {number} status
 * @property {number} errorCode
 * @property {string} errorMsg
 */

/**
 * @typedef {object} ShopeeVideoVerifyInfo
 * @property {number} verified
 */

/**
 * @typedef {object} ShopeeVideoVidInfo
 * @property {string} vid
 * @property {string} cover
 * @property {number} duration
 * @property {string} url
 */

/**
 * @typedef {object} ShopeeVideoHashtag
 * @property {string} hashtagId
 * @property {string} hashtagName
 * @property {number} views
 * @property {boolean} created
 */

/**
 * @typedef {object} ShopeeVideoDetailPostInfo
 * @property {string} title
 * @property {number} ptime
 * @property {number} duration
 * @property {string} cover
 * @property {number} productsCnt
 * @property {string} url
 * @property {number} postId
 * @property {number} postType
 * @property {string} encodePostId
 */

/**
 * @typedef {object} ShopeeVideoDetailTrend
 * @property {number} views
 * @property {number} shares
 * @property {number} likes
 * @property {number} comments
 * @property {number} followers
 * @property {number} soldItems
 * @property {number} placedOrders
 * @property {number} placedSales
 * @property {number} productClicks
 * @property {number} productClickRate
 * @property {number} uniqueBuyers
 * @property {number} conversionRate
 * @property {number} salesPerOrder
 * @property {number} salesPerBuyer
 */

/**
 * @typedef {object} ShopeeVideoDetail
 * @property {ShopeeVideoDetailPostInfo} postInfo
 * @property {ShopeeVideoDetailTrend} trend
 * @property {boolean} amsMaxOpen
 */

/**
 * @typedef {object} ShopeeVideoInfoPatch
 * @property {string} postId
 * @property {string} encodePostId
 * @property {string} postTitle
 * @property {number} postType
 * @property {number} ptime
 * @property {string} cover
 * @property {string} videoUrl
 * @property {number} productsCnt
 * @property {number} duration
 * @property {number} viewCount
 * @property {number} likeCount
 * @property {number} commentCount
 * @property {number} shareCount
 * @property {number} followerCount
 * @property {number} soldCount
 * @property {number} placedOrders
 * @property {number} placedSales
 * @property {number} productClicks
 * @property {number} productClickRate
 * @property {number} uniqueBuyers
 * @property {number} conversionRate
 * @property {number} salesPerOrder
 * @property {number} salesPerBuyer
 * @property {string} metricsSyncedAt
 */

export {};
