import type GPMessage from "./GPMessage.js";
import type { GPMessageProperties } from "./GPMessage.js";
import type { MessageType } from "./types.js";

export interface NAMessageProperties extends GPMessageProperties {
  /** A description of the network analyst message. */
  description?: string | null;
  /** The network analyst message type. */
  type?: MessageType | null;
}

/**
 * Represents a message generated during the execution of a network analyst task. It is composed
 * of a message type and description. NAMessage has no constructor.
 *
 * @since 4.0
 * @see [route](https://developers.arcgis.com/javascript/latest/references/core/rest/route/)
 * @see [ClosestFacilitySolveResult](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ClosestFacilitySolveResult/)
 * @see [ServiceAreaSolveResult](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ServiceAreaSolveResult/)
 */
export default class NAMessage extends GPMessage {
  constructor(properties?: NAMessageProperties);
  /** A description of the network analyst message. */
  accessor description: string | null | undefined;
  /** The network analyst message type. */
  accessor type: MessageType | null | undefined;
}