import { IHubRequestOptions, IModel } from "../hub-types";
import { IRequestOptions } from "@esri/arcgis-rest-request";
import { IItem } from "@esri/arcgis-rest-portal";
import type { IUserRequestOptions } from "@esri/arcgis-rest-request";
import { IFetchItemOptions } from "../items/fetch";
import { IHubPage } from "../core/types/IHubPage";
import { IHubSearchResult } from "../search/types/IHubSearchResult";
/**
 * @private
 * Create a new Hub Page item
 *
 * Minimal properties are name and org
 *
 * @param partialPage
 * @param requestOptions
 */
export declare function createPage(partialPage: Partial<IHubPage>, requestOptions: IUserRequestOptions): Promise<IHubPage>;
/**
 * @private
 * Update a Hub Page
 * @param page
 * @param requestOptions
 */
export declare function updatePage(page: IHubPage, requestOptions: IUserRequestOptions): Promise<IHubPage>;
/**
 * @private
 * Get a Hub Page by id or slug
 * @param identifier item id or slug
 * @param requestOptions
 */
export declare function fetchPage(identifier: string, requestOptions: IFetchItemOptions): Promise<IHubPage>;
/**
 * @internal
 * Convert an IModel for a Hub Page Item into an IHubPage
 * @param model
 * @param requestOptions
 * @returns
 */
export declare function convertModelToPage(model: IModel, requestOptions: IRequestOptions): IHubPage;
/**
 * @private
 * Convert an Hub Page Item into a Hub Page, fetching any additional
 * information that may be required
 * @param item
 * @param auth
 * @returns
 */
export declare function convertItemToPage(item: IItem, requestOptions: IRequestOptions): Promise<IHubPage>;
/**
 * @private
 * Remove a Hub Page
 * @param id
 * @param requestOptions
 */
export declare function deletePage(id: string, requestOptions: IUserRequestOptions): Promise<void>;
/**
 * Fetch Page specific Enrichments
 * @param item
 * @param include
 * @param requestOptions
 * @returns
 */
export declare function enrichPageSearchResult(item: IItem, include: string[], requestOptions: IHubRequestOptions): Promise<IHubSearchResult>;
