import { ConfigService } from '../services/config.service.js'; import { CollaborativesearchService } from '../services/collaborativesearch.service.js'; import { CollaborationEvent, Collaboration } from './collaboration.js'; import { Observable, Subject } from 'rxjs'; import { CollectionAggField } from '../utils/utils.js'; export declare abstract class Contributor { identifier: string; configService: ConfigService; collaborativeSearcheService: CollaborativesearchService; private name; private fetchedData; private _updateData; isDataUpdating: boolean; collection: string; collections: CollectionAggField[]; endCollaborationEvent: Subject; linkedContributorId: string; protected cacheDuration: number; /** * @param identifier identifier of the contributor. * @param configService Service to fetch the configuration of the contributor * @param collaborativeSearcheService Service managing the collaborations between contributors * @param collection Name of the collection of the contributor */ constructor(identifier: string, configService: ConfigService, collaborativeSearcheService: CollaborativesearchService, collection?: string); /** * @returns package name of contributor used in configuration. */ abstract getPackageName(): string; /** * @param key a `key` defined in configuration. * @returns value of the `key` in configuration. */ getConfigValue(key: string): any; abstract isUpdateEnabledOnOwnCollaboration(): boolean; isMyOwnCollaboration(collaborationEvent: CollaborationEvent): boolean; isMyLinkedContributorCollaboration(collaborationEvent: CollaborationEvent): boolean; /** * @returns name of contributor set in configuration. */ getName(): string; /** * @returns set the name of the contributor */ setName(name: string): void; /** * @returns whether the data of contributor should be updated. */ get updateData(): boolean; /** * @param value set if the data of contributor should be updated or not. */ set updateData(value: boolean); /** * @returns name and live informations about filter contributor. */ abstract getFilterDisplayName(): string; abstract fetchData(collaborationEvent: CollaborationEvent): Observable; abstract computeData(data: any): any; abstract setData(data: any): any; abstract setSelection(data: any, c: Collaboration): any; updateFromCollaboration(collaborationEvent: CollaborationEvent): void; }