import { ActivityLogCommunityDTO, ActivityLogDocumentDTO, ActivityLogGroupDTO, ActivityLogObjectDataDTO, ActivityLogObjectIdDTO, ActivityLogPayloadDTO, ActivityLogUserDTO, ActivityPropChangedDTO } from './dtos'; import { ACTIVITY_EVENT_TYPES, ACTIVITY_LOG_USE_CASES, ACTIVITY_OBJECT_TYPES } from './enums'; export declare class BasePayloadPropsDTO { id: string; mainId: string; actor: ActivityLogUserDTO; } export declare class BasePayloadDTO extends BasePayloadPropsDTO { community: ActivityLogCommunityDTO; group: ActivityLogGroupDTO; originalState: T; currentState: T; } export declare class BaseDataDTO { actor: Partial; community: Partial; group: Partial; changes: ActivityPropChangedDTO; object: T; } export interface IActivityLogBaseUseCase { toPayload(data: any): ActivityLogPayloadDTO; toDocument(payload: ActivityLogPayloadDTO): ActivityLogDocumentDTO; toObjectIds(): ActivityLogObjectIdDTO; toData(objectData: ActivityLogObjectDataDTO): any; } export declare abstract class ActivityLogBaseUseCase { private readonly _document; static readonly useCase: ACTIVITY_LOG_USE_CASES; static readonly eventType: ACTIVITY_EVENT_TYPES; static readonly objectType: ACTIVITY_OBJECT_TYPES; constructor(_document: ActivityLogDocumentDTO); /** * @method * public static toPayload(data: PayloadDTO): ActivityLogPayloadDTO * * Used for the producer, to create a payload for an activity log. * DO NOT NEED TO EDIT THIS METHOD */ /** * @method * public static toDocument(payload: ActivityLogPayloadDTO) * * Used for the consumer, to create a document for an activity log. */ /** * Get the document data with the type of T */ get document(): ActivityLogDocumentDTO; /** * Get all object ids from the activity log document * Used for data fetching */ abstract toObjectIds(): ActivityLogObjectIdDTO; /** * Get the binding data from the object ids * Used for data fetching */ abstract toData(objectData: ActivityLogObjectDataDTO): T; }