import { EntityBase } from "@vertigis/arcgis-extensions/Entity"; import type { Initializable } from "@vertigis/arcgis-extensions/support/InitializableBase"; import type { Serializable } from "@vertigis/arcgis-extensions/support/Serializable"; import type { ObservableMixin } from "@vertigis/arcgis-extensions/support/observableUtils"; import type { ModelProperties } from "@vertigis/viewer-spec/app-config/common/ModelProperties"; import type { Entity } from "../AppConfig"; import type { MessageBus } from "../messaging"; /** * Models contain business logic and state, and are used by components and * services to intelligently work with state, including the ability to export * and apply component and model state at will. */ export interface Model extends Entity, Initializable, Serializable, ObservableMixin { } declare const messagesSymbol: unique symbol; /** * Base implementation of Model. */ export declare abstract class ModelBase extends EntityBase implements Model { /** * This is automatically populated by the framework if not specified. */ protected readonly _itemType: string; private [messagesSymbol]; get messages(): MessageBus; set messages(value: MessageBus); /** * Called to perform initialization of the {@link InitializableBase}. * Subclasses should override this method rather than initialize() to * perform custom initialization. */ protected _onInitialize(): Promise; } export {};