interface Entity { id: string | number [prop: string]: any } interface Product extends Entity { name: string description: string slug: string path?: string images: ProductImage[] variants: ProductVariant[] price: ProductPrice options: ProductOption[] } interface ProductOption extends Entity { displayName: string values: ProductOptionValues[] } interface ProductOptionValues { label: string hexColors?: string[] } interface ProductImage { url: string alt?: string } interface ProductVariant { id: string | number } interface ProductPrice { value: number currencyCode: 'USD' | 'ARS' | string | undefined retailValue?: number saleValue?: number } interface Cart extends Entity { id: string products: Pick[] } interface Wishlist extends Entity { products: Pick[] } interface Order {} interface Customer extends Entity { [prop: string]: any } type UseCustomerResponse = { customer: Customer } | null interface Category extends Entity { id: string name: string } interface Brand extends Entity { id: string name: string } type Features = 'wishlist' | 'customer'