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';
import { GroupSettingsState } from './update-group-settings.use-case';
export type GroupProfileState = Partial<{
    name: string;
    description: string;
    privacy: string;
    backgroundImgUrl: string;
    icon: string;
}>;
declare class PayloadDTO extends BasePayloadPropsDTO {
    group: ActivityLogGroupDTO;
    originalState: GroupProfileState;
    currentState: GroupProfileState;
}
declare class DataDTO {
    actor: Partial<ActivityLogUserDTO>;
    group: Partial<ActivityLogGroupDTO>;
    changes: ActivityPropChangedDTO<GroupProfileState & {
        settings?: GroupSettingsState;
    }>;
}
export declare class UpdateGroupProfileLog extends ActivityLogBaseUseCase<DataDTO> {
    static readonly useCase = ACTIVITY_LOG_USE_CASES.UPDATE_GROUP_PROFILE;
    static readonly eventType = ACTIVITY_EVENT_TYPES.UPDATE;
    static readonly objectType = ACTIVITY_OBJECT_TYPES.GROUP;
    static toPayload(data: PayloadDTO): ActivityLogPayloadDTO<PayloadDTO>;
    static toDocument({ eventTime, data, }: ActivityLogPayloadDTO<PayloadDTO>): ActivityLogDocumentDTO<DataDTO>;
    toObjectIds(): ActivityLogObjectIdDTO;
    toData(objectData: ActivityLogObjectDataDTO): DataDTO;
}
export {};
