import { AutoEncoder } from '@simonbackx/simple-encoding'; import { Address } from './addresses/Address.js'; import { StamhoofdFilter } from './filters/StamhoofdFilter.js'; import { Group } from './Group.js'; import { GroupCategoryTree } from './GroupCategory.js'; import { ObjectWithRecords, PatchAnswers } from './members/ObjectWithRecords.js'; import { RecordAnswer } from './members/records/RecordAnswer.js'; import { RecordSettings } from './members/records/RecordSettings.js'; import { OrganizationMetaData } from './OrganizationMetaData.js'; import { OrganizationPrivateMetaData } from './OrganizationPrivateMetaData.js'; import { OrganizationRegistrationPeriod, RegistrationPeriodList } from './RegistrationPeriod.js'; import { Webshop, WebshopPreview } from './webshops/Webshop.js'; import { User } from './User.js'; import { Company } from './Company.js'; import { Language } from './Language.js'; export declare class BaseOrganization extends AutoEncoder { id: string; /** * Name of the organization you are creating */ name: string; active: boolean; website: string | null; registerDomain: string | null; uri: string; meta: OrganizationMetaData; address: Address; createdAt: Date; /** * Return default locale confiruation */ get i18n(): { language: Language; locale: string; }; /** * Potentially includes a path */ getRegistrationHost(i18n?: { language: Language; locale: string; }): string; getDefaultRegistrationHost(i18n?: { language: Language; locale: string; }): string; /** * Used for redirecting */ get resolvedRegisterDomain(): string | null; get registerUrl(): string; get dashboardUrl(): string; get dashboardDomain(): string; /** * Assures at least one company at all times */ get defaultCompanies(): Company[]; } export declare class Organization extends BaseOrganization implements ObjectWithRecords { /** * @deprecated * Please use period instead now */ groups: Group[]; period: OrganizationRegistrationPeriod; /** * Get all groups that are in a category */ get availableGroups(): Group[]; getGroupsForPermissions(permissions?: import('./LoadedPermissions.js').LoadedPermissions | null): Group[]; get adminAvailableGroups(): Group[]; /** * @deprecated * * Get all groups that are in a category */ get availableCategories(): GroupCategoryTree[]; /** * @deprecated */ get categoryTree(): GroupCategoryTree; /** * @deprecated */ get publicCategoryTree(): GroupCategoryTree; /** * @deprecated */ get adminCategoryTree(): GroupCategoryTree; isAcceptingNewMembers(admin: boolean): boolean; isAcceptingExistingMembers(admin: boolean): boolean; /** * 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?: { maxDepth?: number; filterGroups?: (group: Group) => boolean; permissions?: import('./LoadedPermissions.js').LoadedPermissions | null; smartCombine?: boolean; admin?: boolean; }): GroupCategoryTree; /** * @deprecated * (todo) Contains the fully build hierarchy without the need for ID lookups. Try not to use this tree when modifying it. */ getCategoryTreeWithDepth(maxDepth: number): GroupCategoryTree; /** * Only set for users with full access to the organization */ privateMeta: OrganizationPrivateMetaData | null; /** * Only set for users with full access to the organization */ webshops: WebshopPreview[]; /** * Only available for patching. Also available with lazy loading OrganizationAdmins */ admins?: User[] | null; /** * Keep admins accessible and in memory */ periods?: RegistrationPeriodList; isRecordEnabled(_record: RecordSettings): boolean; getRecordAnswers(): Map; patchRecordAnswers(patch: PatchAnswers): this; doesMatchFilter(filter: StamhoofdFilter): boolean; updatePeriods(periods: OrganizationRegistrationPeriod[]): void; } export declare class OrganizationWithWebshop extends AutoEncoder { organization: Organization; webshop: Webshop; } export declare class GetWebshopFromDomainResult extends AutoEncoder { organization: Organization; /** * There is one specific webshop for the given domain. */ webshop: Webshop | null; /** * Multiple webshops possible. Show a selection page. */ webshops: WebshopPreview[]; } //# sourceMappingURL=Organization.d.ts.map