import { CreateProductInput, DataService, GetProductDetailQuery, GetProductWithVariantsQuery, LanguageCode, UpdateProductInput, UpdateProductMutation, UpdateProductOptionInput, UpdateProductVariantInput, UpdateProductVariantsMutation } from '@vendure/admin-ui/core'; import { Observable } from 'rxjs'; import { CreateProductVariantsConfig } from '../../components/generate-product-variants/generate-product-variants.component'; import * as i0 from "@angular/core"; /** * Handles the logic for making the API calls to perform CRUD operations on a Product and its related * entities. This logic was extracted out of the component because it became too large and hard to follow. */ export declare class ProductDetailService { private dataService; constructor(dataService: DataService); getTaxCategories(): Observable<{ __typename?: "TaxCategory"; id: string; createdAt: any; updatedAt: any; name: string; isDefault: boolean; }[]>; createProductWithVariants(input: CreateProductInput, createVariantsConfig: CreateProductVariantsConfig, languageCode: LanguageCode): Observable<{ createProductVariants: ({ __typename?: "ProductVariant"; id: string; createdAt: any; updatedAt: any; enabled: boolean; languageCode: LanguageCode; name: string; price: number; currencyCode: import("@vendure/admin-ui/core").CurrencyCode; priceWithTax: number; stockOnHand: number; stockAllocated: number; trackInventory: import("@vendure/admin-ui/core").GlobalFlag; outOfStockThreshold: number; useGlobalOutOfStockThreshold: boolean; sku: string; taxRateApplied: { __typename?: "TaxRate"; id: string; name: string; value: number; }; taxCategory: { __typename?: "TaxCategory"; id: string; name: string; }; options: Array<{ __typename?: "ProductOption"; id: string; createdAt: any; updatedAt: any; code: string; languageCode: LanguageCode; name: string; groupId: string; translations: Array<{ __typename?: "ProductOptionTranslation"; id: string; languageCode: LanguageCode; name: string; }>; }>; facetValues: Array<{ __typename?: "FacetValue"; id: string; code: string; name: string; facet: { __typename?: "Facet"; id: string; name: string; }; }>; featuredAsset?: { __typename?: "Asset"; id: string; createdAt: any; updatedAt: any; name: string; fileSize: number; mimeType: string; type: import("@vendure/admin-ui/core").AssetType; preview: string; source: string; width: number; height: number; focalPoint?: { __typename?: "Coordinate"; x: number; y: number; } | null; } | null; assets: Array<{ __typename?: "Asset"; id: string; createdAt: any; updatedAt: any; name: string; fileSize: number; mimeType: string; type: import("@vendure/admin-ui/core").AssetType; preview: string; source: string; width: number; height: number; focalPoint?: { __typename?: "Coordinate"; x: number; y: number; } | null; }>; translations: Array<{ __typename?: "ProductVariantTranslation"; id: string; languageCode: LanguageCode; name: string; }>; channels: Array<{ __typename?: "Channel"; id: string; code: string; }>; } | null)[]; productId: string; }>; createProductOptionGroups(groups: Array<{ name: string; values: string[]; }>, languageCode: LanguageCode): Observable<{ __typename?: "ProductOptionGroup"; id: string; createdAt: any; updatedAt: any; languageCode: LanguageCode; code: string; name: string; translations: Array<{ __typename?: "ProductOptionGroupTranslation"; id: string; name: string; }>; options: Array<{ __typename?: "ProductOption"; id: string; languageCode: LanguageCode; name: string; code: string; translations: Array<{ __typename?: "ProductOptionTranslation"; name: string; }>; }>; }[]>; createProductVariants(product: { name: string; id: string; }, variantData: Array<{ price: number; sku: string; stock: number; optionIds: string[]; }>, options: Array<{ id: string; name: string; }>, languageCode: LanguageCode, stockLocationId: string): Observable<{ createProductVariants: ({ __typename?: "ProductVariant"; id: string; createdAt: any; updatedAt: any; enabled: boolean; languageCode: LanguageCode; name: string; price: number; currencyCode: import("@vendure/admin-ui/core").CurrencyCode; priceWithTax: number; stockOnHand: number; stockAllocated: number; trackInventory: import("@vendure/admin-ui/core").GlobalFlag; outOfStockThreshold: number; useGlobalOutOfStockThreshold: boolean; sku: string; taxRateApplied: { __typename?: "TaxRate"; id: string; name: string; value: number; }; taxCategory: { __typename?: "TaxCategory"; id: string; name: string; }; options: Array<{ __typename?: "ProductOption"; id: string; createdAt: any; updatedAt: any; code: string; languageCode: LanguageCode; name: string; groupId: string; translations: Array<{ __typename?: "ProductOptionTranslation"; id: string; languageCode: LanguageCode; name: string; }>; }>; facetValues: Array<{ __typename?: "FacetValue"; id: string; code: string; name: string; facet: { __typename?: "Facet"; id: string; name: string; }; }>; featuredAsset?: { __typename?: "Asset"; id: string; createdAt: any; updatedAt: any; name: string; fileSize: number; mimeType: string; type: import("@vendure/admin-ui/core").AssetType; preview: string; source: string; width: number; height: number; focalPoint?: { __typename?: "Coordinate"; x: number; y: number; } | null; } | null; assets: Array<{ __typename?: "Asset"; id: string; createdAt: any; updatedAt: any; name: string; fileSize: number; mimeType: string; type: import("@vendure/admin-ui/core").AssetType; preview: string; source: string; width: number; height: number; focalPoint?: { __typename?: "Coordinate"; x: number; y: number; } | null; }>; translations: Array<{ __typename?: "ProductVariantTranslation"; id: string; languageCode: LanguageCode; name: string; }>; channels: Array<{ __typename?: "Channel"; id: string; code: string; }>; } | null)[]; productId: string; }>; updateProduct(updateOptions: { product: NonNullable; languageCode: LanguageCode; autoUpdate: boolean; productInput?: UpdateProductInput; variantsInput?: UpdateProductVariantInput[]; }): Observable<(UpdateProductMutation | UpdateProductVariantsMutation)[]>; updateProductOptions(inputs: UpdateProductOptionInput[], autoUpdateProductNames: boolean, product: NonNullable, languageCode: LanguageCode): Observable; deleteProductVariant(id: string, productId: string): Observable; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }