export declare enum Action { OPEN = "OPEN", SELECT = "SELECT", CLOSE = "CLOSE", UPDATE = "UPDATE", CANCEL = "CANCEL" } export declare enum ActionType { OPEN = "APP::RESOURCE_PICKER::OPEN", SELECT = "APP::RESOURCE_PICKER::SELECT", CLOSE = "APP::RESOURCE_PICKER::CLOSE", UPDATE = "APP::RESOURCE_PICKER::UPDATE", CANCEL = "APP::RESOURCE_PICKER::CANCEL" } export declare type Money = string; export declare enum CollectionSortOrder { Manual = "MANUAL", BestSelling = "BEST_SELLING", AlphaAsc = "ALPHA_ASC", AlphaDesc = "ALPHA_DESC", PriceDesc = "PRICE_DESC", PriceAsc = "PRICE_ASC", CreatedDesc = "CREATED_DESC", Created = "CREATED" } export declare enum FulfillmentServiceType { GiftCard = "GIFT_CARD", Manual = "MANUAL", ThirdParty = "THIRD_PARTY" } export declare enum WeightUnit { Kilograms = "KILOGRAMS", Grams = "GRAMS", Pounds = "POUNDS", Ounces = "OUNCES" } export declare enum ProductVariantInventoryPolicy { Deny = "DENY", Continue = "CONTINUE" } export declare enum ProductVariantInventoryManagement { Shopify = "SHOPIFY", NotManaged = "NOT_MANAGED", FulfillmentService = "FULFILLMENT_SERVICE" } export interface Image { id: string; altText?: string; originalSrc: string; } export interface Resource { id: string; updatedAt: string; } export interface CollectionRule { column: string; condition: string; relation: string; } export interface RuleSet { appliedDisjunctively: boolean; rules: CollectionRule[]; } export interface Collection extends Resource { availablePublicationCount: number; description: string; descriptionHtml: string; handle: string; id: string; image?: Image | null; productsAutomaticallySortedCount: number; productsCount: number; productsManuallySortedCount: number; publicationCount: number; ruleSet?: RuleSet | null; seo: { description?: string | null; title?: string | null; }; sortOrder: CollectionSortOrder; storefrontId: string; templateSuffix?: string | null; title: string; } export interface ProductVariant extends Resource { availableForSale: boolean; barcode?: string | null; compareAtPrice?: Money | null; createdAt: string; displayName: string; fulfillmentService?: { id: string; inventoryManagement: boolean; productBased: boolean; serviceName: string; type: FulfillmentServiceType; }; image?: Image | null; inventoryItem: { id: string; }; inventoryManagement: ProductVariantInventoryManagement; inventoryPolicy: ProductVariantInventoryPolicy; inventoryQuantity?: number | null; position: number; price: Money; product: Partial; requiresShipping: boolean; selectedOptions: { value?: string | null; }[]; sku?: string | null; taxable: boolean; title: string; weight?: number | null; weightUnit: WeightUnit; } export interface Product extends Resource { availablePublicationCount: number; createdAt: string; descriptionHtml: string; handle: string; hasOnlyDefaultVariant: boolean; images: Image[]; options: { id: string; name: string; position: number; values: string[]; }[]; productType: string; publishedAt?: string | null; tags: string[]; templateSuffix?: string | null; title: string; totalInventory: number; tracksInventory: boolean; variants: Partial[]; vendor: string; } export interface CancelPayload { readonly id?: string; } export declare type ClosePayload = CancelPayload; export interface Payload { readonly id?: string; initialQuery?: string; selectMultiple?: boolean; showHidden?: boolean; showVariants?: boolean; actionVerb?: ActionVerb; resourceType: ResourceType; } export declare type ResourceSelection = Product | ProductVariant | Collection; export interface SelectPayload { readonly id?: string; selection: ResourceSelection[]; } export interface Options { initialQuery?: string; showHidden?: boolean; selectMultiple?: boolean; actionVerb?: ActionVerb; } export interface ProductOptions extends Options { showVariants?: boolean; } export interface BaseOptions { resourceType: ResourceType; options?: Options | ProductOptions; } export declare enum ResourceType { Product = "product", ProductVariant = "variant", Collection = "collection" } export declare enum ActionVerb { Add = "add", Select = "select" }