import { AutoEncoder } from '@simonbackx/simple-encoding'; import { AppliedRegistrationDiscount } from '../AppliedRegistrationDiscount.js'; import { StamhoofdFilter } from '../filters/StamhoofdFilter.js'; import { GenericBalance } from '../GenericBalance.js'; import { Group } from '../Group.js'; import { GroupPrice } from '../GroupSettings.js'; import { StockReservation } from '../StockReservation.js'; import { RegisterItemOption } from './checkout/RegisterItem.js'; import { ObjectWithRecords, PatchAnswers } from './ObjectWithRecords.js'; import { RecordAnswer } from './records/RecordAnswer.js'; import { RecordSettings } from './records/RecordSettings.js'; export declare class Registration extends AutoEncoder implements ObjectWithRecords { id: string; group: Group; groupPrice: GroupPrice; /** * The group price inside a registration is cached and is a snapshot of the group price at the time of registration. * This method returns the most up to date group price we can still find. */ get updatedGroupPrice(): GroupPrice; options: RegisterItemOption[]; recordAnswers: Map; get groupId(): string; organizationId: string; payingOrganizationId: string | null; memberId: string; /** * @deprecated */ cycle: number; registeredAt: Date | null; startDate: Date | null; endDate: Date | null; trialUntil: Date | null; reservedUntil: Date | null; /** * Currently not yet used */ deactivatedAt: Date | null; createdAt: Date; updatedAt: Date; /** * @deprecated - replaced by group type */ waitingList: boolean; canRegister: boolean; /** * @deprecated * Use balances instead */ price: number; /** * @deprecated * Use balances instead */ pricePaid: number; stockReservations: StockReservation[]; /** * The total balance that has been charged for this registration. * This includes discounts, and manually adjusted balances. */ balances: GenericBalance[]; /** * Discounts that were applied to this registration. * Note that these discounts are saved in separate balance items and * are not included in the price. * * Reason is that discounts can change after you've been registered */ discounts: Map; /** * @danger this could be glitchy * The total price that has been charged for this registration. * This includes discounts, and manually adjusted balances. * * Note: only returns balances that are due now. For trials this can be 0 until the trial becomes payable (± 1 week before the trial ends). */ get calculatedPrice(): number; /** * @danger * The registration's balances only include the balance items that are due. It is possible in some weird situations that a registration * has discounts that are only due in more than a week, in that case, the balance could be: * € 0 * € 40 is due in 2 weeks for the normal price * € -10 is due in 2 week for the discount * The discounts object will already contain the -10. * So this method will return 10 euro instead of €40 */ get calculatedPriceWithoutDiscounts(): number; get isTrial(): boolean; get description(): string; doesMatchFilter(filter: StamhoofdFilter): boolean; isRecordEnabled(_: RecordSettings): boolean; getRecordAnswers(): Map; patchRecordAnswers(patch: PatchAnswers): this; } //# sourceMappingURL=Registration.d.ts.map