import { ROLE_TYPE } from '@beincom/constants';
import { ActivityLogBaseUseCase, BasePayloadPropsDTO } from '../../activity-log-base-use-case.dto';
import { ActivityLogCommunityDTO, ActivityLogDocumentDTO, ActivityLogObjectDataDTO, ActivityLogObjectIdDTO, ActivityLogPayloadDTO, ActivityLogUserDTO } from '../../dtos';
import { ACTIVITY_EVENT_TYPES, ACTIVITY_LOG_USE_CASES, ACTIVITY_OBJECT_TYPES } from '../../enums';
declare class PayloadDTO extends BasePayloadPropsDTO {
    users: ActivityLogUserDTO[];
    community: ActivityLogCommunityDTO;
    originalState: ROLE_TYPE;
    currentState: ROLE_TYPE;
}
declare class DataDTO {
    actor: Partial<ActivityLogUserDTO>;
    user: Partial<ActivityLogUserDTO>;
    community: Partial<ActivityLogCommunityDTO>;
    changes: {
        old: ROLE_TYPE;
        new: ROLE_TYPE;
    };
}
export declare class AssignCommunityAdminsLog extends ActivityLogBaseUseCase<DataDTO> {
    static readonly useCase: ACTIVITY_LOG_USE_CASES.REVOKE_COMMUNITY_ADMIN | ACTIVITY_LOG_USE_CASES.ASSIGN_COMMUNITY_ADMIN;
    static readonly eventType = ACTIVITY_EVENT_TYPES.UPDATE;
    static readonly objectType = ACTIVITY_OBJECT_TYPES.MEMBER;
    static toPayload(data: PayloadDTO): ActivityLogPayloadDTO<PayloadDTO>;
    static toDocument({ eventTime, data, }: ActivityLogPayloadDTO<PayloadDTO>): ActivityLogDocumentDTO<DataDTO>[];
    toObjectIds(): ActivityLogObjectIdDTO;
    toData(objectData: ActivityLogObjectDataDTO): DataDTO;
}
export {};
