import { IUser } from "@esri/arcgis-rest-portal"; import { IWithFollowers } from "../core/traits/IWithFollowers"; import type { IArcGISContext } from "../types/IArcGISContext"; import { HubEntityType } from "../core/types/HubEntityType"; /** * Get the entity's followers group id * @param entityId entity id * @param entityType entity type * @param context context used to support fetchHubEntity so it has access * to different types of request options based on the entity type * @returns {string} entity's followers group id */ export declare function getEntityFollowersGroupId(entityId: string, entityType: HubEntityType, context: IArcGISContext): Promise; /** * Whether the user is currently following the entity * @param entityOrId hub entity or entity id, type is IWithFollowers * as we only want to accept hub entities backed by item entities which * extend IWithFollowers * @param user * @param entityType * @param context * @returns {boolean} */ export declare function isUserFollowing(entityOrId: IWithFollowers | string, user: IUser, entityType?: HubEntityType, context?: IArcGISContext): Promise; /** * Follow an entity * @param entityId entity id * @param user user who attempts to follow the entity * @param entityType optional if entityOrId is a string * @param context optional if entityOrId is a string * @returns promise that resolves { success: true, username: user.username } * or rejects with an error */ export declare function followEntity(entityId: string, user: IUser, entityType?: HubEntityType, context?: IArcGISContext): Promise<{ success: boolean; username: string; }>; /** * Unfollow an entity * @param entityId entity id * @param user user who attempts to unfollow the entity * @param entityType optional if entityOrId is a string * @param context optional if entityOrId is a string * @returns promise that resolves { success: true, username: user.username } or * rejects with an error */ export declare function unfollowEntity(entityId: string, user: IUser, entityType?: HubEntityType, context?: IArcGISContext): Promise<{ success: boolean; username: string; }>;