import { EntityManager } from "typeorm"; import { TransactionBaseService } from "../interfaces"; import { DiscountCondition, DiscountConditionCustomerGroup, DiscountConditionProduct, DiscountConditionProductCollection, DiscountConditionProductTag, DiscountConditionProductType, DiscountConditionType } from "../models"; import { DiscountConditionRepository } from "../repositories/discount-condition"; import { FindConfig } from "../types/common"; import { DiscountConditionInput } from "../types/discount"; import EventBusService from "./event-bus"; type InjectedDependencies = { manager: EntityManager; discountConditionRepository: typeof DiscountConditionRepository; eventBusService: EventBusService; }; /** * Provides layer to manipulate discount conditions. * @implements {BaseService} */ declare class DiscountConditionService extends TransactionBaseService { protected readonly discountConditionRepository_: typeof DiscountConditionRepository; protected readonly eventBus_: EventBusService; constructor({ discountConditionRepository, eventBusService, }: InjectedDependencies); retrieve(conditionId: string, config?: FindConfig): Promise; protected static resolveConditionType_(data: DiscountConditionInput): { type: DiscountConditionType; resource_ids: (string | { id: string; })[]; } | undefined; upsertCondition(data: DiscountConditionInput, overrideExisting?: boolean): Promise<(DiscountConditionProduct | DiscountConditionProductType | DiscountConditionProductCollection | DiscountConditionProductTag | DiscountConditionCustomerGroup)[]>; removeResources(data: Omit & { id: string; }): Promise; delete(discountConditionId: string): Promise; } export default DiscountConditionService;