import { ShopifyObject } from './base';
import { ProductImage } from './product_image';
import { ProductOption } from './product_option';
import { ProductVariant } from './product_variant';
import { MetaFieldUpdateCreate } from './meta_field_update_create';
export interface ProductUpdateCreate extends Partial<ShopifyObject> {
    /**
     * The description of the product, complete with HTML formatting.
     */
    body_html?: string | null;
    /**
     * A human-friendly unique string for the Product automatically generated from its title.
     * They are used by the Liquid templating language to refer to objects.
     */
    handle?: string | null;
    /**
     * A list of image objects, each one representing an image associated with the product.
     */
    images?: Partial<ProductImage>[];
    /**
     * Equal to the first item of `ìmages`, if it exists. Only set if images exist.
     */
    image?: Partial<ProductImage>;
    /**
     * The name of the product, to be used for SEO purposes. This will generally be added to the <meta name='title'> tag.
     */
    metafields_global_title_tag?: string;
    /**
     * The description of the product, to be used for SEO purposes. This will generally be added to the <meta name='description'> tag.
     */
    metafields_global_description_tag?: string;
    /**
     * Custom product property names like "Size", "Color", and "Material".
     * Products are based on permutations of these options.
     * A product may have a maximum of 3 options. 255 characters limit each.
     */
    options?: Partial<ProductOption>[];
    /**
     * A categorization that a product can be tagged with, commonly used for filtering and searching.
     */
    product_type?: string;
    /**
     * The date and time when the product was published. The API returns this value in ISO 8601 format.
     * Set to NULL to unpublish a product
     */
    published_at?: string | null;
    /**
     * A categorization that a product can be tagged with, commonly used for filtering and searching.
     * Each comma-separated tag has a character limit of 255.
     */
    tags?: string;
    /**
     * The suffix of the liquid template being used.
     * By default, the original template is called product.liquid, without any suffix.
     * Any additional templates will be: product.suffix.liquid.
     */
    template_suffix?: string | null;
    /**
     * The name of the product. In a shop's catalog, clicking on a product's title takes you to that product's page.
     * On a product's page, the product's title typically appears in a large font.
     */
    title?: string;
    /**
     * A list of variant objects, each one representing a slightly different version of the product.
     * For example, if a product comes in different sizes and colors, each size and color permutation (such as "small black", "medium black", "large blue"), would be a variant.
     * To reorder variants, update the product with the variants in the desired order.The position attribute on the variant will be ignored.
     */
    variants?: Partial<ProductVariant>[];
    /**
     * The name of the vendor of the product.
     */
    vendor?: string;
    /**
     * Create or update published status of a product.
     * Property only available when a product is being updated or created not at a response
     */
    published?: boolean;
    metafields?: MetaFieldUpdateCreate[];
}
