// @ts-nocheck
import { Observable } from "rxjs";
import { ActivityRecord, ActivitySubscribeConfig, CreateActivityData } from "../data/activity.data.model";

export declare class ActivityElement {

    /**
     * Subscribe to activities with optional filtering configuration.
     * Returns an Observable that, when unsubscribed, automatically cleans up the internal subscription.
     * @param config Optional configuration to filter activities by scope, feature types, action types, etc.
     * @returns Observable<ActivityRecord[] | null>
     */
    getAllActivities: (config?: ActivitySubscribeConfig) => Observable<ActivityRecord[] | null>;

    /**
     * Create a new activity record.
     * @param data The activity data including feature type, action type, target entity, etc.
     * @returns Promise<void>
     */
    createActivity: (data: CreateActivityData) => Promise<void>;

    constructor();

    /**
     * Subscribe to activities with optional filtering configuration.
     */
    private _getAllActivities;

    /**
     * Create a new activity record.
     */
    private _createActivity;
}
