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';
export declare enum DeletedCommunityState {
    RESTORED = "recoverd",
    TEMPORARY_DELETED = "temporary-deleted"
}
export type DeleteRecoverCommunityPayload = {
    community: ActivityLogCommunityDTO;
    state: DeletedCommunityState;
};
type PayloadDTO = BasePayloadPropsDTO & DeleteRecoverCommunityPayload;
type DataDTO = {
    actor: ActivityLogUserDTO;
} & DeleteRecoverCommunityPayload;
declare class DeleteRecoverCommunityLog extends ActivityLogBaseUseCase<DataDTO> {
    static readonly useCase: ACTIVITY_LOG_USE_CASES.DELETE_COMMUNITY | ACTIVITY_LOG_USE_CASES.RECOVER_COMMUNITY;
    static readonly eventType: ACTIVITY_EVENT_TYPES.DELETE | ACTIVITY_EVENT_TYPES.UPDATE;
    static readonly objectType = ACTIVITY_OBJECT_TYPES.COMMUNITY;
    static toPayload(data: PayloadDTO): ActivityLogPayloadDTO<PayloadDTO>;
    static toDocument({ eventTime, data, }: ActivityLogPayloadDTO<PayloadDTO>): ActivityLogDocumentDTO<DataDTO>;
    toObjectIds(): ActivityLogObjectIdDTO;
    toData(objectData: ActivityLogObjectDataDTO): DataDTO;
}
export declare class DeleteCommunityLog extends DeleteRecoverCommunityLog {
    static readonly useCase = ACTIVITY_LOG_USE_CASES.DELETE_COMMUNITY;
    static readonly eventType = ACTIVITY_EVENT_TYPES.DELETE;
    static readonly objectType = ACTIVITY_OBJECT_TYPES.COMMUNITY;
}
export declare class RecoverCommunityLog extends DeleteRecoverCommunityLog {
    static readonly useCase = ACTIVITY_LOG_USE_CASES.RECOVER_COMMUNITY;
    static readonly eventType = ACTIVITY_EVENT_TYPES.UPDATE;
    static readonly objectType = ACTIVITY_OBJECT_TYPES.COMMUNITY;
}
export {};
