export type Maybe = T | null; export type Connection = { edges: Array>; }; export type Edge = { node: T; }; export type Cart = { id: string | undefined; checkoutUrl: string; cost: { subtotalAmount: Money; totalAmount: Money; }; totalQuantity: number; lines: CartItem[]; currency: string; }; export type CartProduct = { id: string; handle: string; title: string; featuredImage: Image; }; export type CartItem = { id: string | undefined; quantity: number; cost: { totalAmount: Money; }; merchandise: { id: string; title: string; selectedOptions: { name: string; value: string; }[]; product: CartProduct; }; }; export type Collection = { handle: string; title: string; description: string; seo: SEO; updatedAt: string; path: string; }; export type Image = { url: string; altText: string; width: number; height: number; }; export type Menu = { title: string; path: string; }; export type Money = { amount: string; currencyCode: string; }; export type Page = { id: string; title: string; handle: string; body: string; bodySummary: string; seo?: SEO; createdAt: string; updatedAt: string; }; export type Product = { id: string; handle: string; availableForSale: boolean; title: string; description: string; descriptionHtml: string; options: ProductOption[]; priceRange: { maxVariantPrice: Money; minVariantPrice: Money; }; featuredImage: Image; seo: SEO; tags: string[]; updatedAt: string; variants: ProductVariant[]; images: Image[]; }; export type ProductOption = { id: string; name: string; values: string[]; }; export type ProductVariant = { id: string; title: string; availableForSale: boolean; selectedOptions: { name: string; value: string; }[]; price: Money; images: Image[]; }; export type SEO = { title: string; description: string; };