import { CreateProductOptionGroupInput, DeletionResult, UpdateProductOptionGroupInput } from '@vendure/common/lib/generated-types'; import { ID } from '@vendure/common/lib/shared-types'; import { RequestContext } from '../../api/common/request-context'; import { RelationPaths } from '../../api/decorators/relations.decorator'; import { Translated } from '../../common/types/locale-types'; import { TransactionalConnection } from '../../connection/transactional-connection'; import { ProductOptionGroup } from '../../entity/product-option-group/product-option-group.entity'; import { EventBus } from '../../event-bus'; import { CustomFieldRelationService } from '../helpers/custom-field-relation/custom-field-relation.service'; import { TranslatableSaver } from '../helpers/translatable-saver/translatable-saver'; import { TranslatorService } from '../helpers/translator/translator.service'; import { ProductOptionService } from './product-option.service'; /** * @description * Contains methods relating to {@link ProductOptionGroup} entities. * * @docsCategory services */ export declare class ProductOptionGroupService { private connection; private translatableSaver; private customFieldRelationService; private productOptionService; private eventBus; private translator; constructor(connection: TransactionalConnection, translatableSaver: TranslatableSaver, customFieldRelationService: CustomFieldRelationService, productOptionService: ProductOptionService, eventBus: EventBus, translator: TranslatorService); findAll(ctx: RequestContext, filterTerm?: string, relations?: RelationPaths): Promise>>; findOne(ctx: RequestContext, id: ID, relations?: RelationPaths, findOneOptions?: { includeSoftDeleted: boolean; }): Promise | undefined>; getOptionGroupsByProductId(ctx: RequestContext, id: ID): Promise>>; create(ctx: RequestContext, input: Omit): Promise>; update(ctx: RequestContext, input: UpdateProductOptionGroupInput): Promise>; /** * @description * Deletes the ProductOptionGroup and any associated ProductOptions. If the ProductOptionGroup * is still referenced by a soft-deleted Product, then a soft-delete will be used to preserve * referential integrity. Otherwise a hard-delete will be performed. */ deleteGroupAndOptionsFromProduct(ctx: RequestContext, id: ID, productId: ID): Promise<{ result: DeletionResult; message: string; } | { result: DeletionResult.NOT_DELETED; message: string | undefined; } | { result: DeletionResult; message?: undefined; }>; private isInUseByOtherProducts; private groupOptionsAreInUse; }