import * as z from "zod/v3";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
/**
 * The current status of the product (active or archived).
 */
export declare const ProductStatus: {
    readonly Active: "active";
    readonly Archived: "archived";
};
/**
 * The current status of the product (active or archived).
 */
export type ProductStatus = ClosedEnum<typeof ProductStatus>;
export type Images = {
    /**
     * A unique identifier for an object.
     */
    id?: string | null | undefined;
    /**
     * The URL of an image of the product.
     */
    url?: string | null | undefined;
};
export type EcommerceProductOptions = {
    /**
     * A unique identifier for the option of the product.
     */
    id?: string | null | undefined;
    /**
     * The name of the option for the product.
     */
    name?: string | null | undefined;
    values?: Array<string | null> | undefined;
};
export type EcommerceProductVariantsOptions = {
    /**
     * A unique identifier for the option of the variant.
     */
    id?: string | null | undefined;
    /**
     * The name of the option for the variant.
     */
    name?: string | null | undefined;
    /**
     * The value of the option for the variant.
     */
    value?: string | null | undefined;
};
export type EcommerceProductImages = {
    /**
     * A unique identifier for an object.
     */
    id?: string | null | undefined;
    /**
     * The URL of an image of the variant.
     */
    url?: string | null | undefined;
};
export type Variants = {
    /**
     * A unique identifier for the variant of the product.
     */
    id?: string | null | undefined;
    /**
     * The name for the variant, used for displaying to customers.
     */
    name?: string | null | undefined;
    /**
     * The price of the variant.
     */
    price?: string | null | undefined;
    /**
     * The stock keeping unit of the variant.
     */
    sku?: string | null | undefined;
    /**
     * The quantity of the variant in stock.
     */
    inventoryQuantity?: string | null | undefined;
    /**
     * The weight of the variant.
     */
    weight?: string | null | undefined;
    /**
     * The unit of measurement for the weight of the variant.
     */
    weightUnit?: string | null | undefined;
    options?: Array<EcommerceProductVariantsOptions> | undefined;
    images?: Array<EcommerceProductImages> | undefined;
};
export type EcommerceProductCategories = {
    /**
     * A unique identifier for an object.
     */
    id?: string | null | undefined;
    /**
     * The name of the category.
     */
    name?: string | null | undefined;
};
export type EcommerceProduct = {
    /**
     * A unique identifier for an object.
     */
    id: string;
    /**
     * The name of the product as it should be displayed to customers.
     */
    name?: string | null | undefined;
    /**
     * A detailed description of the product.
     */
    description?: string | null | undefined;
    /**
     * The current status of the product (active or archived).
     */
    status?: ProductStatus | null | undefined;
    /**
     * The price of the product.
     */
    price?: string | null | undefined;
    /**
     * The stock keeping unit of the product.
     */
    sku?: string | null | undefined;
    /**
     * The quantity of the product in stock.
     */
    inventoryQuantity?: string | null | undefined;
    /**
     * An array of image URLs for the product.
     */
    images?: Array<Images> | null | undefined;
    /**
     * The weight of the product.
     */
    weight?: string | null | undefined;
    /**
     * The unit of measurement for the weight of the product.
     */
    weightUnit?: string | null | undefined;
    /**
     * An array of options for the product.
     */
    options?: Array<EcommerceProductOptions> | undefined;
    variants?: Array<Variants> | undefined;
    /**
     * An array of tags for the product, used for organization and searching.
     */
    tags?: Array<string | null> | undefined;
    /**
     * An array of categories for the product, used for organization and searching.
     */
    categories?: Array<EcommerceProductCategories> | undefined;
    /**
     * When custom mappings are configured on the resource, the result is included here.
     */
    customMappings?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * The date and time when the object was created.
     */
    createdAt?: Date | null | undefined;
    /**
     * The date and time when the object was last updated.
     */
    updatedAt?: Date | null | undefined;
};
/** @internal */
export declare const ProductStatus$inboundSchema: z.ZodNativeEnum<typeof ProductStatus>;
/** @internal */
export declare const Images$inboundSchema: z.ZodType<Images, z.ZodTypeDef, unknown>;
export declare function imagesFromJSON(jsonString: string): SafeParseResult<Images, SDKValidationError>;
/** @internal */
export declare const EcommerceProductOptions$inboundSchema: z.ZodType<EcommerceProductOptions, z.ZodTypeDef, unknown>;
export declare function ecommerceProductOptionsFromJSON(jsonString: string): SafeParseResult<EcommerceProductOptions, SDKValidationError>;
/** @internal */
export declare const EcommerceProductVariantsOptions$inboundSchema: z.ZodType<EcommerceProductVariantsOptions, z.ZodTypeDef, unknown>;
export declare function ecommerceProductVariantsOptionsFromJSON(jsonString: string): SafeParseResult<EcommerceProductVariantsOptions, SDKValidationError>;
/** @internal */
export declare const EcommerceProductImages$inboundSchema: z.ZodType<EcommerceProductImages, z.ZodTypeDef, unknown>;
export declare function ecommerceProductImagesFromJSON(jsonString: string): SafeParseResult<EcommerceProductImages, SDKValidationError>;
/** @internal */
export declare const Variants$inboundSchema: z.ZodType<Variants, z.ZodTypeDef, unknown>;
export declare function variantsFromJSON(jsonString: string): SafeParseResult<Variants, SDKValidationError>;
/** @internal */
export declare const EcommerceProductCategories$inboundSchema: z.ZodType<EcommerceProductCategories, z.ZodTypeDef, unknown>;
export declare function ecommerceProductCategoriesFromJSON(jsonString: string): SafeParseResult<EcommerceProductCategories, SDKValidationError>;
/** @internal */
export declare const EcommerceProduct$inboundSchema: z.ZodType<EcommerceProduct, z.ZodTypeDef, unknown>;
export declare function ecommerceProductFromJSON(jsonString: string): SafeParseResult<EcommerceProduct, SDKValidationError>;
//# sourceMappingURL=ecommerceproduct.d.ts.map