import { ActivityLogBaseUseCase, BasePayloadPropsDTO } from '../../activity-log-base-use-case.dto'; import { ActivityLogDocumentDTO, ActivityLogGroupDTO, ActivityLogObjectDataDTO, ActivityLogObjectIdDTO, ActivityLogPayloadDTO, ActivityLogUserDTO, ActivityPropChangedDTO } from '../../dtos'; import { ACTIVITY_EVENT_TYPES, ACTIVITY_LOG_USE_CASES, ACTIVITY_OBJECT_TYPES } from '../../enums'; type SettingKey = 'isJoinApproval' | 'isInvitedOnly' | 'isActiveGroupTerms' | 'isActiveMembershipQuestions'; export type GroupSettingsState = { [k in SettingKey]?: boolean; }; declare class PayloadDTO extends BasePayloadPropsDTO { group: Group; originalState: GroupSettingsState; currentState: GroupSettingsState; } type Group = ActivityLogGroupDTO & { settings: GroupSettingsState; }; declare class DataDTO { actor: Partial; group: Partial; object: Group; changes: ActivityPropChangedDTO; } export declare class UpdateGroupSettingsLog extends ActivityLogBaseUseCase { static readonly useCase = ACTIVITY_LOG_USE_CASES.UPDATE_GROUP_SETTINGS; static readonly eventType = ACTIVITY_EVENT_TYPES.UPDATE; static readonly objectType = ACTIVITY_OBJECT_TYPES.GROUP; static toPayload(data: PayloadDTO): ActivityLogPayloadDTO; static toDocument({ eventTime, data, }: ActivityLogPayloadDTO): ActivityLogDocumentDTO; toObjectIds(): ActivityLogObjectIdDTO; toData(objectData: ActivityLogObjectDataDTO): DataDTO; } export {};