import { AutoEncoder } from '@simonbackx/simple-encoding'; import { Group } from './Group.js'; import { GroupCategory, GroupCategoryTree } from './GroupCategory.js'; import { Organization } from './Organization.js'; import { RegistrationPeriodBase } from './RegistrationPeriodBase.js'; import { SetupSteps } from './SetupSteps.js'; import { BundleDiscount } from './BundleDiscount.js'; export declare class RegistrationPeriodSettings extends AutoEncoder { } export declare class RegistrationPeriod extends RegistrationPeriodBase { settings: RegistrationPeriodSettings; } export declare class OrganizationRegistrationPeriodSettings extends AutoEncoder { /** * All the available categories */ categories: GroupCategory[]; /** * We use one invisible root category to simplify the difference between non-root and root category */ rootCategoryId: string; get rootCategory(): GroupCategory | undefined; bundleDiscounts: BundleDiscount[]; } export declare class OrganizationRegistrationPeriod extends AutoEncoder { id: string; period: RegistrationPeriod; settings: OrganizationRegistrationPeriodSettings; groups: Group[]; setupSteps: SetupSteps; getDiffName(): string; getDiffValue(): string; /** * Get all groups that are in a category */ get availableCategories(): GroupCategoryTree[]; /** * (todo) Contains the fully build hierarchy without the need for ID lookups. Try not to use this tree when modifying it. */ get categoryTree(): GroupCategoryTree; get publicCategoryTree(): GroupCategoryTree; get adminCategoryTree(): GroupCategoryTree; get waitingLists(): Group[]; get rootCategory(): GroupCategory | undefined; /** * Contains the fully build hierarchy without the need for ID lookups. Try not to use this tree when modifying it. * * For registration members perspective, try to use options.admin instead of options.permissions. * options.permissions is only used if you want to hide groups and empty categories that you don't have permissions for. */ getCategoryTree(options?: { organization?: Organization; maxDepth?: number; filterGroups?: (group: Group) => boolean; permissions?: import('./LoadedPermissions.js').LoadedPermissions | null; smartCombine?: boolean; admin?: boolean; }): GroupCategoryTree; isCategoryDeactivated(organization: Organization, category: GroupCategoryTree): boolean; duplicate(newPeriod: RegistrationPeriod): OrganizationRegistrationPeriod; } export declare class RegistrationPeriodList extends AutoEncoder { organizationPeriods: OrganizationRegistrationPeriod[]; periods: RegistrationPeriod[]; } //# sourceMappingURL=RegistrationPeriod.d.ts.map