import type { IUserRequestOptions } from "@esri/arcgis-rest-request";
import { IHubTemplate, IHubTemplateEditor } from "../core/types/IHubTemplate";
import { IPortal } from "@esri/arcgis-rest-portal";
/**
 * @private
 * Creates a Hub Template's backing Solution item and returns
 * the created entity
 *
 * NOTE: We have no immediate plans to allow template creation
 * from the context of the Hub application, but scaffolding
 * this util for potential future implementation. For now,
 * we will throw an error
 * @param _partialTemplate
 * @param _requestOptions
 */
export declare function createTemplate(_partialTemplate: Partial<IHubTemplate>, _requestOptions: IUserRequestOptions): Promise<IHubTemplate>;
/**
 * @private
 * Updates a Hub Template's backing item and returns
 * the updated entity
 * @param template
 * @param requestOptions
 */
export declare function updateTemplate(template: IHubTemplate, requestOptions: IUserRequestOptions): Promise<IHubTemplate>;
/**
 * Convert an IHubTemplateEditor back into a IHubTemplate
 * @param editor
 * @param portal
 */
export declare function editorToTemplate(editor: IHubTemplateEditor, portal: IPortal): IHubTemplate;
/**
 * @private
 * Remove a Hub Template's backing item
 * @param id
 * @param requestOptions
 */
export declare function deleteTemplate(id: string, requestOptions: IUserRequestOptions): Promise<void>;
