import type { IArcGISContext } from "../types/IArcGISContext";
import { HubEntity } from "../core/types/HubEntity";
import { HubEntityType } from "../core/types/HubEntityType";
/**
 * When an entity sends an "outgoing" association request
 * or accepts an "incoming" association request, half of
 * the association "connection" is made.
 *
 * from the parent's perspective: the parent "includes"
 * the child in its association group
 *
 * From the child's perspective: the child "references"
 * the parent via a typeKeyword of the form ref|<parentType>|<parentId>
 *
 * Note: we export this function under 2 names - requestAssociation
 * and acceptAssociation. These actions are functionally equivalent,
 * but we want to make the intent more clear to the consumer.
 *
 * @param entity - entity requesting association
 * @param type - type of the entity the requesting entity wants to associate with
 * @param id - id of the entity the requesting entity wants to associate with
 * @param context - contextual portal and auth information
 */
export declare const requestAssociation: (entity: HubEntity, associationType: HubEntityType, id: string, context: IArcGISContext) => Promise<void>;
