import { mongodb } from '@unchainedshop/mongodb'; import { type TimestampFields, type LogFields, type Address, type Contact } from '@unchainedshop/mongodb'; export interface EnrollmentPeriod { start: Date; end: Date; orderId?: string; isTrial?: boolean; } export interface EnrollmentPlan { configuration: { key: string; value: string; }[] | null; productId: string; quantity: number; } export declare const EnrollmentStatus: { readonly INITIAL: "INITIAL"; readonly ACTIVE: "ACTIVE"; readonly PAUSED: "PAUSED"; readonly TERMINATED: "TERMINATED"; }; export type EnrollmentStatus = (typeof EnrollmentStatus)[keyof typeof EnrollmentStatus]; export interface EnrollmentOrderPositionTemplate { context?: any; configuration?: { key: string; value: string; }[]; originalProductId: string; productId: string; quantity: number; quotationId?: string; } export type Enrollment = { _id: string; billingAddress: Address; configuration: { key: string; value: string; }[] | null; contact: Contact; context?: any; countryCode: string; currencyCode: string; delivery: { deliveryProviderId?: string; context?: any; }; enrollmentNumber?: string; orderIdForFirstPeriod?: string; expires?: Date; meta?: any; payment?: { paymentProviderId: string; context?: any; }; periods: EnrollmentPeriod[]; productId: string; quantity?: number; status: EnrollmentStatus | null; userId: string; } & LogFields & TimestampFields; export declare const EnrollmentsCollection: (db: mongodb.Db) => Promise>;