import { AssignProductsToChannelInput, CreateProductInput, DeletionResponse, RemoveOptionGroupFromProductResult, RemoveProductsFromChannelInput, UpdateProductInput } from '@subit/common/lib/generated-types'; import { ID, PaginatedList } from '@subit/common/lib/shared-types'; import { RequestContext } from '../../api/common/request-context'; import { ErrorResultUnion } from '../../common/error/error-result'; import { ListQueryOptions } from '../../common/types/common-types'; import { Translated } from '../../common/types/locale-types'; import { Channel } from '../../entity/channel/channel.entity'; import { FacetValue } from '../../entity/facet-value/facet-value.entity'; import { Product } from '../../entity/product/product.entity'; import { EventBus } from '../../event-bus/event-bus'; import { CustomFieldRelationService } from '../helpers/custom-field-relation/custom-field-relation.service'; import { ListQueryBuilder } from '../helpers/list-query-builder/list-query-builder'; import { SlugValidator } from '../helpers/slug-validator/slug-validator'; import { TranslatableSaver } from '../helpers/translatable-saver/translatable-saver'; import { TransactionalConnection } from '../transaction/transactional-connection'; import { AssetService } from './asset.service'; import { ChannelService } from './channel.service'; import { CollectionService } from './collection.service'; import { FacetValueService } from './facet-value.service'; import { ProductVariantService } from './product-variant.service'; import { RoleService } from './role.service'; import { TaxRateService } from './tax-rate.service'; export declare class ProductService { private connection; private channelService; private roleService; private assetService; private productVariantService; private facetValueService; private taxRateService; private collectionService; private listQueryBuilder; private translatableSaver; private eventBus; private slugValidator; private customFieldRelationService; private readonly relations; constructor(connection: TransactionalConnection, channelService: ChannelService, roleService: RoleService, assetService: AssetService, productVariantService: ProductVariantService, facetValueService: FacetValueService, taxRateService: TaxRateService, collectionService: CollectionService, listQueryBuilder: ListQueryBuilder, translatableSaver: TranslatableSaver, eventBus: EventBus, slugValidator: SlugValidator, customFieldRelationService: CustomFieldRelationService); findAll(ctx: RequestContext, options?: ListQueryOptions): Promise>>; findOne(ctx: RequestContext, productId: ID): Promise | undefined>; findByIds(ctx: RequestContext, productIds: ID[]): Promise>>; getProductChannels(ctx: RequestContext, productId: ID): Promise; getFacetValuesForProduct(ctx: RequestContext, productId: ID): Promise>>; findOneBySlug(ctx: RequestContext, slug: string): Promise | undefined>; create(ctx: RequestContext, input: CreateProductInput): Promise>; update(ctx: RequestContext, input: UpdateProductInput): Promise>; softDelete(ctx: RequestContext, productId: ID): Promise; assignProductsToChannel(ctx: RequestContext, input: AssignProductsToChannelInput): Promise>>; removeProductsFromChannel(ctx: RequestContext, input: RemoveProductsFromChannelInput): Promise>>; addOptionGroupToProduct(ctx: RequestContext, productId: ID, optionGroupId: ID): Promise>; removeOptionGroupFromProduct(ctx: RequestContext, productId: ID, optionGroupId: ID): Promise>>; private getProductWithOptionGroups; }