import type { IItem } from "@esri/arcgis-rest-portal";
import { IEnrichmentErrorInfo, IHubRequestOptions } from "../hub-types";
import { IHubSchedule } from "../core/types/IHubSchedule";
import { IItemEnrichments } from "../core/types/IItemEnrichments";
import { IServerEnrichments } from "../core/types/IServerEnrichments";
/**
 * An object containing the item and fetched enrichments
 */
export interface IItemAndEnrichments extends IItemEnrichments, IServerEnrichments {
    item: IItem;
}
/**
 * The name of an enrichment that comes either
 * from the portal API for the item
 * or from the server that the item points to
 */
export type ItemOrServerEnrichment = keyof IItemEnrichments | keyof IServerEnrichments;
export type IItemAndIServerEnrichments = IItemEnrichments & IServerEnrichments;
/**
 * Enrichments that can be fetched for an IHubEditableContent entity
 */
export type IHubEditableContentEnrichments = Pick<IItemAndIServerEnrichments, "metadata" | "server"> & {
    schedule?: IHubSchedule;
};
export type EditableContentEnrichment = keyof IHubEditableContentEnrichments;
/**
 * convert an error to an enrichment error info format
 * and optionally append it to an existing array of those
 * @param error
 * @param errors an array of existing enrichment error info
 * @returns a new array of enrichment error info
 * @private
 */
export declare const getEnrichmentErrors: (error: Error | string, errors?: IEnrichmentErrorInfo[]) => IEnrichmentErrorInfo[];
/**
 * Fetch enrichments for an item
 * @param item
 * @param enrichments the list of enrichments to fetch
 * @param requestOptions
 * @returns an object with the item and enrichments
 * @private
 */
export declare const fetchItemEnrichments: (item: IItem, enrichments: ItemOrServerEnrichment[], requestOptions?: IHubRequestOptions) => Promise<IItemAndEnrichments>;
