interface TramaPrice { amount: number; currency: string; formatted: string; } interface TramaImage { id: string; url: string; altText: string | null; width: number | null; height: number | null; } interface TramaStock { status: 'in_stock' | 'out_of_stock' | 'limited' | 'unknown'; quantity: number | null; trackInventory: boolean; } interface TramaSeo { title: string | null; description: string | null; keywords: string[]; } interface TramaVariant { id: string; platformId: string; name: string; options: Record; price: TramaPrice; stock: TramaStock; sku: string | null; } interface TramaProduct { id: string; platformId: string; platform: 'wix' | 'shopify' | 'webflow'; name: string; slug: string; description: string | null; shortDescription: string | null; price: TramaPrice; compareAtPrice: TramaPrice | null; images: TramaImage[]; mainImage: TramaImage | null; variants: TramaVariant[]; collections: string[]; tags: string[]; sku: string | null; stock: TramaStock; seo: TramaSeo; metadata: Record; createdAt: string; updatedAt: string; } interface TramaCollection { id: string; platformId: string; name: string; slug: string; description: string | null; image: TramaImage | null; productCount: number; } interface TramaCatalogReference { appId: string; catalogItemId: string; options?: Record; } interface TramaCartItem { id: string; productId: string; variantId: string | null; name: string; image: TramaImage | null; price: TramaPrice; quantity: number; catalogReference: TramaCatalogReference; } interface TramaCart { id: string; platformCartId: string; tenantId: string; lineItems: TramaCartItem[]; subtotal: TramaPrice; total: TramaPrice; checkoutUrl: string | null; currency: string; createdAt: string; updatedAt: string; } interface CartItemInput { productId: string; variantId?: string; quantity: number; } interface FetchProductsOptions { collectionId?: string; limit?: number; page?: number; cursor?: string; sortBy?: 'name' | 'price_asc' | 'price_desc' | 'createdAt'; } interface WixOAuthToken { accessToken: string; refreshToken: string; expiresAt: string; instanceId?: string; tokenType?: string; } export type { CartItemInput, FetchProductsOptions, TramaCart, TramaCartItem, TramaCatalogReference, TramaCollection, TramaImage, TramaPrice, TramaProduct, TramaSeo, TramaStock, TramaVariant, WixOAuthToken };