import { AutoEncoder } from '@simonbackx/simple-encoding'; import { DefaultAgeGroup } from './DefaultAgeGroup.js'; import { Replacement } from './endpoints/EmailRequest.js'; import { EventNotificationType } from './EventNotificationType.js'; import { Image } from './files/Image.js'; import { LoginMethod, LoginMethodConfig } from './LoginMethod.js'; import { MemberResponsibility } from './MemberResponsibility.js'; import { DataPermissionsSettings, FinancialSupportSettings, OrganizationRecordsConfiguration } from './members/OrganizationRecordsConfiguration.js'; import { OrganizationEmail } from './OrganizationEmail.js'; import { OrganizationLevelRecordsConfiguration } from './OrganizationLevelRecordsConfiguration.js'; import { PermissionRoleDetailed } from './PermissionRole.js'; import { ReduceablePrice } from './ReduceablePrice.js'; import { RegistrationPeriod } from './RegistrationPeriod.js'; import { RichText } from './RichText.js'; import { User } from './User.js'; export declare class PlatformPrivateConfig extends AutoEncoder { roles: PermissionRoleDetailed[]; emails: OrganizationEmail[]; } export declare enum OrganizationTagType { Tag = "Tag", Verbond = "Verbond", Gewest = "Gewest", Gouw = "Gouw" } export declare function getOrganizationTagTypeName(type: OrganizationTagType): string; export declare function getOrganizationTagTypePluralName(type: OrganizationTagType): string; export declare class OrganizationTag extends AutoEncoder { id: string; name: string; description: string; organizationCount: number; childTags: string[]; get type(): OrganizationTagType.Tag | OrganizationTagType.Verbond | OrganizationTagType.Gewest; getChildType(allTags: OrganizationTag[]): OrganizationTagType.Tag | OrganizationTagType.Verbond | OrganizationTagType.Gewest; } export declare class PlatformPremiseType extends AutoEncoder { id: string; name: string; description: string; /** * Maximum number of premises allowed for this premise type */ max: null | number; /** * Minimum number of premises allowed for this premise type */ min: null | number; } export declare class PlatformMembershipTypeConfigPrice extends AutoEncoder { id: string; startDate: Date | null; /** *@deprecated */ _price: number; prices: Map; /** * If you set this, it will be possible to choose a custom start and end date within the startDate - endDate period */ pricePerDay: number; getBasePrice(tagIds: string[], shouldApplyReducedPrice: boolean): number; calculatePrice(tagIds: string[], shouldApplyReducedPrice: boolean, days: number): number; get name(): string; } export declare class PlatformMembershipTypeConfig extends AutoEncoder { startDate: Date; endDate: Date; expireDate: Date | null; amountFree: number; trialDays: number; prices: PlatformMembershipTypeConfigPrice[]; getPriceConfigForDate(date: Date): PlatformMembershipTypeConfigPrice; getPrice(date: Date, tagIds: string[], shouldApplyReducedPrice: boolean): number; get name(): string; } export declare enum PlatformMembershipTypeBehaviour { /** * A membership that is valid for a certain period */ Period = "Period", /** * A membership that is valid for a certain number of days */ Days = "Days" } export declare class PlatformMembershipType extends AutoEncoder { id: string; name: string; description: string; behaviour: PlatformMembershipTypeBehaviour; /** * Settings per period */ periods: Map; /** * Only allow organizations with these tags to use this membership type */ requiredTagIds: string[] | null; /** * Only allow groups with these default age groups to use this membership type */ requiredDefaultAgeGroupIds: string[] | null; getPrice(periodId: string, date: Date, tagIds: string[], isReduced: boolean): number | null; isEnabled(tagIds: string[], defaultAgeGroupIds: string[]): boolean; private isEnabledForDefaultAgeGroup; private isEnabledForTags; } export declare class PlatformEventType extends AutoEncoder { id: string; name: string; description: string; /** * Maximum amount that each organization can have this type */ maximum: null | number; /** * Maximum number of days allowed for this event type */ maximumDays: null | number; /** * Minimum number of days allowed for this event type */ minimumDays: null | number; isLocationRequired: boolean; } export declare class PlatformPolicy extends AutoEncoder { id: string; name: string; url: string; enableAtSignup: boolean; checkbox: boolean; richText: RichText; } export declare class PrivacySettings extends AutoEncoder { policies: PlatformPolicy[]; } export declare class PlatformConfig extends AutoEncoder { name: string; featureFlags: string[]; /** * Cotnains the text and settings for when financial support is enabled - not whether it is enabled */ financialSupport: FinancialSupportSettings | null; /** * Contains the text and settings for when data permissions are enabled - not whether it is enabled */ dataPermission: DataPermissionsSettings | null; recordsConfiguration: OrganizationRecordsConfiguration; organizationLevelRecordsConfiguration: OrganizationLevelRecordsConfiguration; tags: OrganizationTag[]; premiseTypes: PlatformPremiseType[]; defaultAgeGroups: DefaultAgeGroup[]; responsibilities: MemberResponsibility[]; membershipTypes: PlatformMembershipType[]; eventTypes: PlatformEventType[]; eventNotificationTypes: EventNotificationType[]; coverPhoto: Image | null; coverBottomLeftOverlayImage: Image | null; coverBottomLeftOverlayWidth: number; footerText: RichText; shopFooterText: RichText; color: string | null; horizontalLogoDark: Image | null; squareLogoDark: Image | null; horizontalLogo: Image | null; squareLogo: Image | null; /** * This is not the logo of the platform, but of the corresponding organization (e.g. KSA) * Optional. When not set, it will use the squareLogo */ organizationLogo: Image | null; organizationLogoDark: Image | null; logoDocuments: Image | null; expandLogo: boolean; privacy: PrivacySettings; loginMethods: Map; getEmailReplacements(platform: { privateConfig: PlatformPrivateConfig | null; }, isPreviewing?: boolean): Replacement[]; getEnabledPlatformMembershipTypes(tagIds: string[], defaultAgeGroupIds: string[]): PlatformMembershipType[]; } export declare class Platform extends AutoEncoder { static instance: Platform | null; config: PlatformConfig; privateConfig: PlatformPrivateConfig | null; period: RegistrationPeriod; /** * The organization that represents the platform for collection of platform memberships payments */ membershipOrganizationId: string | null; /** * Keep admins accessible and in memory */ admins?: User[] | null; /** * Keep admins accessible and in memory */ periods?: RegistrationPeriod[]; /** * If you don't have permissions, privateConfig will be null, so there won't be any roles either */ getRoles(): PermissionRoleDetailed[]; static get shared(): Platform; static get optionalShared(): Platform | null; static clearShared(): void; setShared(): void; } //# sourceMappingURL=Platform.d.ts.map