import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core'; import { FormBuilder, FormControl, FormGroup, UntypedFormGroup } from '@angular/forms'; import { Asset, CurrencyCode, DataService, GetProductVariantDetailDocument, GetProductVariantDetailQuery, GlobalFlag, ItemOf, LanguageCode, ModalService, NotificationService, Permission, ProductOptionFragment, TypedBaseDetailComponent } from '@vendure/admin-ui/core'; import { Observable } from 'rxjs'; import { ProductDetailService } from '../../providers/product-detail/product-detail.service'; import * as i0 from "@angular/core"; interface SelectedAssets { assets?: Asset[]; featuredAsset?: Asset; } export declare class ProductVariantDetailComponent extends TypedBaseDetailComponent implements OnInit, OnDestroy { private productDetailService; private formBuilder; private modalService; private notificationService; protected dataService: DataService; private changeDetector; readonly updatePermissions: Permission[]; readonly customFields: import("@vendure/admin-ui/core").CustomFieldConfig[]; readonly customPriceFields: import("@vendure/admin-ui/core").CustomFieldConfig[]; readonly customOptionFields: import("@vendure/admin-ui/core").CustomFieldConfig[]; stockLevels$: Observable['stockLevels']>; detailForm: FormGroup<{ id: FormControl; enabled: FormControl; sku: FormControl; name: FormControl; taxCategoryId: FormControl; stockOnHand: FormControl; useGlobalOutOfStockThreshold: FormControl; outOfStockThreshold: FormControl; trackInventory: FormControl; facetValueIds: FormControl; customFields?: FormControl | undefined; }>; stockLevelsForm: import("@angular/forms").FormArray; stockLocationName: FormControl; stockOnHand: FormControl; stockAllocated: FormControl; }>>; pricesForm: import("@angular/forms").FormArray; currencyCode: FormControl; delete: FormControl; customFields: FormGroup; }>>; assetChanges: SelectedAssets; taxCategories$: Observable>>; unusedStockLocation$: Observable>>; unusedCurrencyCodes$: Observable; channelPriceIncludesTax$: Observable; readonly GlobalFlag: typeof GlobalFlag; globalTrackInventory: boolean; globalOutOfStockThreshold: number; facetValues$: Observable['facetValues']>; channelDefaultCurrencyCode: CurrencyCode; constructor(productDetailService: ProductDetailService, formBuilder: FormBuilder, modalService: ModalService, notificationService: NotificationService, dataService: DataService, changeDetector: ChangeDetectorRef); ngOnInit(): void; ngOnDestroy(): void; addPriceInCurrency(currencyCode: CurrencyCode): void; toggleDeletePrice(deleteFormControl: FormControl): void; addStockLocation(stockLocation: ItemOf): void; save(): void; assetsChanged(): boolean; inventoryIsNotTracked(formGroup: UntypedFormGroup): boolean; optionGroupCode(optionGroupId: string): string | undefined; optionName(option: ProductOptionFragment): string; removeFacetValue(facetValueId: string): void; selectFacetValue(): void; private displayFacetValueModal; protected setFormValues(variant: NonNullable, languageCode: LanguageCode): void; /** * Given a product and the value of the detailForm, this method creates an updated copy of the product which * can then be persisted to the API. */ private getUpdatedVariant; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } export {};