import type { IUserRequestOptions } from "@esri/arcgis-rest-request";
import { IQuery } from "../search/types/IHubCatalog";
import { IItem } from "@esri/arcgis-rest-portal";
import { IRequestOptions } from "@esri/arcgis-rest-request";
import { IHubRequestOptions } from "../hub-types";
import { IHubInitiative } from "../core/types/IHubInitiative";
import { IHubSearchResult } from "../search/types/IHubSearchResult";
/**
 * @private
 * Create a new Hub Initiative item
 *
 * Minimal properties are name and orgUrlKey
 *
 * @param partialInitiative
 * @param requestOptions
 */
export declare function createInitiative(partialInitiative: Partial<IHubInitiative>, requestOptions: IUserRequestOptions): Promise<IHubInitiative>;
/**
 * @private
 * Update a Hub Initiative
 * @param initiative
 * @param requestOptions
 */
export declare function updateInitiative(initiative: IHubInitiative, requestOptions: IUserRequestOptions): Promise<IHubInitiative>;
/**
 * @private
 * Get a Hub Initiative by id or slug
 * @param identifier item id or slug
 * @param requestOptions
 */
export declare function fetchInitiative(identifier: string, requestOptions: IRequestOptions): Promise<IHubInitiative>;
/**
 * @private
 * Remove a Hub Initiative
 * @param id
 * @param requestOptions
 */
export declare function deleteInitiative(id: string, requestOptions: IUserRequestOptions): Promise<void>;
/**
 * @private
 * Convert an Hub Initiative Item into a Hub Initiative, fetching any additional
 * information that may be required
 * @param item
 * @param auth
 * @returns
 */
export declare function convertItemToInitiative(item: IItem, requestOptions: IRequestOptions): Promise<IHubInitiative>;
/**
 * @private
 * Fetch Initiative specific enrichments
 * @param item
 * @param include
 * @param requestOptions
 * @returns
 */
export declare function enrichInitiativeSearchResult(item: IItem, include: string[], requestOptions: IHubRequestOptions): Promise<IHubSearchResult>;
/**
 * ** DEPRECATED: Please use the association methods directly.
 * This will be removed in the next breaking version **
 *
 * Related Projects are those that have the Initiative id in the
 * typekeywords but NOT in the catalog. We use this query to show
 * Projects which want to be associated but are not yet included in
 * the catalog
 * This is passed into the Gallery showing "Pending Projects"
 * @param initiative
 * @returns
 */
export declare function getPendingProjectsQuery(initiative: IHubInitiative): IQuery;
