import { AutoEncoder } from '@simonbackx/simple-encoding'; import { Address } from '../addresses/Address.js'; export declare enum STPackageType { LegacyMembers = "LegacyMembers", Members = "Members", Webshops = "Webshops", SingleWebshop = "SingleWebshop", TrialMembers = "TrialMembers", TrialWebshops = "TrialWebshops" } export declare class STPackageTypeHelper { static getName(type: STPackageType): string; } export declare enum STPricingType { Fixed = "Fixed", /** * Package is renewable per year * Package can get extended initially to a specific date */ PerYear = "PerYear", /** * Price is per member, per year */ PerMember = "PerMember" } export declare class STPackageMeta extends AutoEncoder { get name(): string; /** * ID of the package that was renewed (if it was renewed) */ didRenewId?: string; type: STPackageType; pricingType: STPricingType; /** * One time price for the package, per year, or per member depending on pricingType */ unitPrice: number; /** * Service fees, percentage. 100_00 = 100%, 1 = 0.01% */ serviceFeePercentage: number; /** * Fixed service fee per payment, in cents */ serviceFeeFixed: number; /** * Fixed service fee per payment, in cents */ serviceFeeMinimum: number | null; /** * Fixed service fee per payment, in cents */ serviceFeeMaximum: number | null; /** * @deprecated * Contains the (paid) invoiced amount. * * This should be replaced by manually querying the balance items created for the package */ paidAmount: number; /** * @deprecated * Contains the (paid) invoiced price. Used for statistics and reporting * This should be replaced by manually querying the balance items created for the package */ paidPrice: number; /** * Minimum amount that will needs to get invoiced. Only used for first invoice */ minimumAmount: number; /** * Only used if applicable */ autorenew: boolean; /** * Only used if applicable */ allowRenew: boolean; firstFailedPayment: Date | null; paymentFailedCount: number; /** * Date when the package starts. Is is valid until validUntil */ startDate: Date; canDeactivate: boolean; } /** * A package contains a price agreement for a given period that might be renewable */ export declare class STPackage extends AutoEncoder { id: string; meta: STPackageMeta; createdAt: Date; updatedAt: Date; /** * validAt is null if the initial needed payment is missing. The package can be ignore * It contains the date when the package was validated and added correctly. */ validAt: Date | null; validUntil: Date | null; removeAt: Date | null; shouldHintRenew(): boolean; get status(): STPackageStatus; } export declare class STPackageStatusServiceFee extends AutoEncoder { fixed: number; percentage: number; minimum: number | null; maximum: number | null; startDate: Date; endDate: Date | null; } export declare class STPackageStatus extends AutoEncoder { startDate: Date; validUntil: Date | null; removeAt: Date | null; firstFailedPayment: Date | null; /** * Service fees, percentage. 100_00 = 100%, 1 = 0.01% */ serviceFees: STPackageStatusServiceFee[]; get activeServiceFees(): STPackageStatusServiceFee; get isActive(): boolean; /** * Purchased the package, the package is not yet removed, but it is expired or not paid after 4 weeks following a failed payment */ get wasActive(): boolean; get deactivateDate(): Date | null; merge(status: STPackageStatus): void; } export declare function calculateVATPercentage(address: Address, VATNumber: string | null): number; //# sourceMappingURL=STPackage.d.ts.map