import type { Polygon } from "geojson";
import { IHubRequestOptions } from "../../hub-types";
import { IEntitySetting } from "../../discussions/api/types";
import { IWithDiscussions } from "../traits/IWithDiscussions";
/**
 * Creates or updates the entity settings for an entity. Currently this how the following are configured/persisted:
 *   1. allowed participation channels
 *   2. allowed locations (geometries representing the region(s) on the map where users can draw custom geometries to attach to their posts/replies)
 * @param entity An IHubEntity that implements discussions-related traits
 * @param requestOptions An IHubRequestOptions object
 * @param allowedLocations An optional Polygon[] representing the allowed locations for discussion post/reply geometries, defaults to null
 * @returns a promise that resolves an IEntitySetting object
 */
export declare function createOrUpdateEntitySettings<T extends IWithDiscussions & {
    id: string;
    type: string;
}>(entity: T, requestOptions: IHubRequestOptions, allowedLocations?: Polygon[]): Promise<IEntitySetting>;
