import type { PricingCalculation } from '@unchainedshop/utils'; import { type BasePricingAdapterContext, type IPricingAdapter, type IPricingSheet } from '../directors/index.ts'; import type { PaymentProvider } from '@unchainedshop/core-payment'; import type { OrderDiscount, OrderPayment, Order } from '@unchainedshop/core-orders'; import type { User } from '@unchainedshop/core-users'; import type { Modules } from '../modules.ts'; export interface PaymentPricingCalculation extends PricingCalculation { discountId?: string; isTaxable: boolean; isNetPrice: boolean; rate?: number; } export interface PaymentPricingAdapterContext extends BasePricingAdapterContext { countryCode?: string; currencyCode?: string; user: User | null; orderPayment?: OrderPayment; order?: Order; provider: PaymentProvider; discounts: OrderDiscount[]; } export type IPaymentPricingSheet = IPricingSheet & { addFee: (params: { amount: number; isTaxable: boolean; isNetPrice: boolean; meta?: any; }) => void; addTax: (params: { amount: number; rate: number; baseCategory?: string; discountId?: string; meta?: any; }) => void; addDiscount: (params: { amount: number; isTaxable: boolean; isNetPrice: boolean; discountId: string; meta?: any; }) => void; }; export type IPaymentPricingAdapter = IPricingAdapter; export declare const PaymentPricingAdapter: IPricingAdapter;