import type { IArcGISContext } from "../types/IArcGISContext"; import { HubItemEntity } from "../core/HubItemEntity"; import { IEditorConfig } from "../core/schemas/types"; import { IWithEditorBehavior } from "../core/behaviors/IWithEditorBehavior"; import { DiscussionEditorType } from "./_internal/discussionEditorTypes"; import { IWithSharingBehavior } from "../core/behaviors/IWithSharingBehavior"; import { IWithStoreBehavior } from "../core/behaviors/IWithStoreBehavior"; import { IEntityEditorContext } from "../core/types/HubEntityEditor"; import { IHubDiscussion, IHubDiscussionEditor } from "../core/types/IHubDiscussion"; /** * Hub Discussion Class */ export declare class HubDiscussion extends HubItemEntity implements IWithStoreBehavior, IWithSharingBehavior, IWithEditorBehavior { /** * Create an instance from an IHubDiscussion object * @param json JSON object to create a HubDiscussion from * @param context ArcGIS context * @returns a HubDiscussion */ static fromJson(json: Partial, context: IArcGISContext): HubDiscussion; /** * Create a new HubDiscussion, returning a HubDiscussion instance. * Note: This does not persist the Discussion into the backing store * @param partialDiscussion a partial IHubDiscussion * @param context ArcGIS context * @returns promise that resolves a HubDiscussion */ static create(partialDiscussion: Partial, context: IArcGISContext, save?: boolean): Promise; /** * Fetch a Discussion from the backing store and return a HubDiscussion instance. * @param identifier slug or item id * @param context ArcGIS context * @returns promise that resolves a HubDiscussion */ static fetch(identifier: string, context: IArcGISContext): Promise; private static applyDefaults; /** * Apply a new state to the instance * @param changes A partial IHubDiscussion */ update(changes: Partial): void; save(): Promise; /** * Delete the HubDiscussion from the store * set a flag to indicate that it is destroyed * @returns a promise */ delete(): Promise; getEditorConfig(i18nScope: string, type: DiscussionEditorType): Promise; /** * Return the project as an editor object * @param editorContext * @returns */ toEditor(_editorContext?: IEntityEditorContext, include?: string[]): Promise; /** * Load the project from the editor object * @param editor * @returns */ fromEditor(editor: IHubDiscussionEditor): Promise; }