import { type IBaseDirector, type PricingCalculation } from '@unchainedshop/utils'; import type { BasePricingAdapterContext, BasePricingContext, IPricingAdapter } from './BasePricingAdapter.ts'; import type { IPricingSheet } from './BasePricingSheet.ts'; import type { Modules } from '../modules.ts'; export interface Discount { discountId: string; configuration: DiscountConfiguration; } export type IPricingDirector, Adapter extends IPricingAdapter, Context = { modules: Modules; }> = IBaseDirector & { buildPricingContext: (pricingContext: PricingContext, unchainedAPI: Context) => Promise; rebuildCalculation: (pricingContext: PricingContext, unchainedAPI: Context) => Promise; calculationSheet: (pricingContext: PricingContext, calculation: Calculation[]) => PricingAdapterSheet; }; export declare const BasePricingDirector: >>(directorName: string) => IPricingDirector, PricingAdapter>;