import { ActivityLogBaseUseCase, BaseDataDTO, BasePayloadDTO, BasePayloadPropsDTO } from '../../activity-log-base-use-case.dto';
import { ActivityLogBadgeDTO, ActivityLogDocumentDTO, ActivityLogGroupDTO, ActivityLogObjectDataDTO, ActivityLogObjectIdDTO, ActivityLogPayloadDTO, ActivityPropChangedDTO } from '../../dtos';
import { ACTIVITY_EVENT_TYPES, ACTIVITY_LOG_USE_CASES, ACTIVITY_OBJECT_TYPES } from '../../enums';
export type BadgeLogDto = ActivityLogBadgeDTO & {
    assignedTo?: ActivityLogGroupDTO;
};
type BadgeChanges = ActivityPropChangedDTO<BadgeLogDto>;
type PayloadDTO = BasePayloadPropsDTO & Omit<BasePayloadDTO<BadgeLogDto>, 'group' | 'community'>;
type DataDTO = Omit<BaseDataDTO<BadgeLogDto>, 'group' | 'community'> & {
    changes: BadgeChanges;
    badge?: ActivityLogBadgeDTO;
};
export declare class CreateBadgeLog extends ActivityLogBaseUseCase<DataDTO> {
    static readonly useCase: ACTIVITY_LOG_USE_CASES;
    static readonly eventType: ACTIVITY_EVENT_TYPES;
    static readonly objectType: ACTIVITY_OBJECT_TYPES;
    static toPayload(data: PayloadDTO): ActivityLogPayloadDTO<PayloadDTO>;
    static toDocument({ eventTime, data, useCase, }: ActivityLogPayloadDTO<PayloadDTO>): ActivityLogDocumentDTO<DataDTO>;
    toObjectIds(): ActivityLogObjectIdDTO;
    toData(objectData: Partial<ActivityLogObjectDataDTO>): DataDTO;
}
export declare class UpdateBadgeLog extends CreateBadgeLog {
    static readonly useCase = ACTIVITY_LOG_USE_CASES.UPDATE_GROUP_BADGE;
    static readonly eventType = ACTIVITY_EVENT_TYPES.UPDATE;
    static readonly objectType = ACTIVITY_OBJECT_TYPES.GROUP_BADGE;
}
export declare class DeleteBadgeLog extends CreateBadgeLog {
    static readonly useCase = ACTIVITY_LOG_USE_CASES.DELETE_GROUP_BADGE;
    static readonly eventType = ACTIVITY_EVENT_TYPES.DELETE;
    static readonly objectType = ACTIVITY_OBJECT_TYPES.GROUP_BADGE;
}
export declare class AssignBadgeLog extends CreateBadgeLog {
    static readonly useCase: ACTIVITY_LOG_USE_CASES.ASSIGN_GROUP_BADGE | ACTIVITY_LOG_USE_CASES.UNASSIGN_GROUP_BADGE;
    static readonly eventType = ACTIVITY_EVENT_TYPES.UPDATE;
    static readonly objectType = ACTIVITY_OBJECT_TYPES.GROUP_BADGE;
}
export declare class UnassignBadgeLog extends AssignBadgeLog {
    static readonly useCase = ACTIVITY_LOG_USE_CASES.UNASSIGN_GROUP_BADGE;
    static readonly eventType = ACTIVITY_EVENT_TYPES.UPDATE;
    static readonly objectType = ACTIVITY_OBJECT_TYPES.GROUP_BADGE;
}
export {};
