import BaseAPI from "./BaseAPI"; import Client from "../Client"; export type ProductDetails = { id: number; type: string; isPublicDomain: boolean; isForSale: boolean; priceInRobux: number; premiumPricing: { premiumDiscountPercentage: number; premiumPriceInRobux: number; }; }; export type GetAssetBundlesOptions = { assetId: number; sortOrder?: "Asc" | "Desc"; limit?: 10 | 25 | 50 | 100; cursor?: string; }; export type GetAssetBundles = { previousPageCursor: string; nextPageCursor: string; data: { id: number; name: string; description: string; bundleType: string; items: { owned: boolean; id: number; name: string; type: string; }[]; creator: { id: number; name: string; type: string; }; creatorType: number; product: ProductDetails; }[]; }; export type GetBundleDetailsOptions = { bundleId: number; }; export type GetBundleDetails = GetAssetBundles["data"][0]; export type GetBundleRecommendationsByBundleIdOptions = { bundleId: number; numItems?: number; }; export type GetBundleRecommendationsByBundleId = { data: GetAssetBundles["data"]; }; export type GetMultiBundleDetailsOptions = { bundleIds: number[]; }; export type GetMultiBundleDetails = GetAssetBundles["data"]; export type GetUserBundlesOptions = { userId: number; sortOrder?: "Asc" | "Desc"; limit?: 10 | 25 | 50 | 100; cursor?: string; }; export type GetUserBundles = GetAssetBundles; export type GetUserBundlesByTypeOptions = GetUserBundlesOptions & { bundleType: "BodyParts" | "AvatarAnimations" | string; }; export type GetUserBundlesByType = GetUserBundles; export type UnpackBundleOptions = { bundleId: number; }; export type UnpackBundle = unknown; export type GetAssetToCategory = Record; export type GetAssetToSubCategory = GetAssetToCategory; export type GetCategories = GetAssetToCategory; export type GetSubCategories = GetAssetToCategory; export type GetAppStoreExclusiveBundlesOptions = { appStoreType: "iOS" | "GooglePlay" | "Xbox" | "Amazon"; }; export type GetAppStoreExclusiveBundles = { data: ProductDetails[]; }; export type GetAssetFavoriteCountOptions = { assetId: number; }; export type GetAssetFavoriteCount = number; export type GetBundleFavoriteCountOptions = { bundleId: number; }; export type GetBundleFavoriteCount = number; export type RemoveSelfAssetFavoriteOptions = { userId: number; assetId: number; }; export type RemoveSelfAssetFavorite = unknown; export type GetUserFavoriteAssetOptions = { userId: number; assetId: number; }; export type GetUserFavoriteAsset = { assetId: number; userId: number; created: string; }; export type FavoriteAssetOptions = { userId: number; assetId: number; }; export type FavoriteAsset = unknown; export type RemoveFavoriteBundleOptions = { userId: number; bundleId: number; }; export type RemoveFavoriteBundle = unknown; export type GetSelfFavoriteBundleOptions = { userId: number; bundleId: number; }; export type GetSelfFavoriteBundle = { bundleId: number; userId: number; created: string; }; export type FavoriteBundleOptions = { userId: number; bundleId: number; }; export type FavoriteBundle = unknown; export default class CatalogAPI extends BaseAPI { constructor(client: Client); getAssetBundles(options: GetAssetBundlesOptions): Promise; getBundleDetails(options: GetBundleDetailsOptions): Promise; getBundleRecommendationsByBundleId(options: GetBundleRecommendationsByBundleIdOptions): Promise; getMultiBundleDetails(options: GetMultiBundleDetailsOptions): Promise; getUserBundles(options: GetUserBundlesOptions): Promise; getUserBundlesByType(options: GetUserBundlesByTypeOptions): Promise; unpackBundle(options: UnpackBundleOptions): Promise; getAssetToCategory(): Promise; getAssetToSubCategory(): Promise; getCategories(): Promise; getSubCategories(): Promise; getAppStoreExclusiveBundles(options: GetAppStoreExclusiveBundlesOptions): Promise; getAssetFavoriteCount(options: GetAssetFavoriteCountOptions): Promise; getBundleFavoriteCount(options: GetBundleFavoriteCountOptions): Promise; removeAssetFavorite(options: RemoveSelfAssetFavoriteOptions): Promise; getUserFavoriteAsset(options: GetUserFavoriteAssetOptions): Promise; favoriteAsset(options: FavoriteAssetOptions): Promise; removeBundleFavorite(options: RemoveFavoriteBundleOptions): Promise; getUserFavoriteBundle(options: GetSelfFavoriteBundleOptions): Promise; favoriteBundle(options: FavoriteBundleOptions): Promise; }