import type { IArcGISContext } from "../types/IArcGISContext"; import { IEditorConfig } from "../core/schemas/types"; import { HubItemEntity } from "../core/HubItemEntity"; import { IHubTemplate, IHubTemplateEditor } from "../core/types/IHubTemplate"; import { TemplateEditorType } from "./_internal/templateEditorTypes"; import { IEntityEditorContext } from "../core/types/HubEntityEditor"; /** * Hub Template Class - this class encapsulates the standard * operations for a "Solution" item despite the Hub team not * "owning" this item type. Our primary goal is to allow * editing of the item's meta information, manage sharing, etc. */ export declare class HubTemplate extends HubItemEntity { /** * Private constructor to allow for future * template-specific logic * @param template * @param context */ private constructor(); /** * Create an HubTemplate instance from an IHubTemplate object * @param json - JSON object to create a HubTemplate from * @param context - ArcGIS context * @returns */ static fromJson(json: Partial, context: IArcGISContext): HubTemplate; /** * Create a new HubTemplate, returning a HubTemplate instance. * This does not automatically persist the Template into * the backing store unless save is set to true * * NOTE: we have no immediate plans to allow template creation * from the context of the Hub application, but scaffolding this * method for potential future implementation. The underlying * createTemplate function will throw an error if attempted. * @param partialTemplate * @param context * @param save */ static create(partialTemplate: Partial, context: IArcGISContext, save?: boolean): Promise; /** * Fetch a HubTemplate from the backing store and return * a HubTemplate instance * @param identifier * @param context */ static fetch(identifier: string, context: IArcGISContext): Promise; /** * Given a partial Template, apply defaults to * it to ensure that a baseline of properties are set * @param partialTemplate * @param context */ private static applyDefaults; getEditorConfig(i18nScope: string, type: TemplateEditorType): Promise; /** * Transform template entity into an editor object * @param editorContext */ toEditor(_editorContext?: IEntityEditorContext, include?: string[]): Promise; /** * Transform editor values into a template entity * @param editor */ fromEditor(editor: IHubTemplateEditor): Promise; /** * Update the instance's internal entity state * @param changes */ update(changes: Partial): void; /** Save the HubTemplate to the backing store */ save(): Promise; /** * Delete the Hub Template's backing item and set a flag * indicating it's been destroyed */ delete(): Promise; }