import type { ClonableMixin } from "../../core/Clonable.js";
import type { JSONSupport } from "../../core/JSONSupport.js";

export interface AttachmentsOrderByInfoProperties extends Partial<Pick<AttachmentsOrderByInfo, "field" | "order">> {}

/**
 * The `AttachmentsOrderByInfo` class indicates the attachment field display order for the attachments configured in [AttachmentsContent](https://developers.arcgis.com/javascript/latest/references/core/popup/content/AttachmentsContent/).
 *
 * @since 4.32
 * @example
 * // Sort the attachments by their `ATT_NAME` attribute in descending order
 * const attachmentsOrderByInfo = new AttachmentsOrderByInfo({
 *   field: "ATT_NAME",
 *   order: "descending"
 * });
 */
export default class AttachmentsOrderByInfo extends AttachmentsOrderByInfoSuperclass {
  constructor(properties?: AttachmentsOrderByInfoProperties);
  /**
   * An [AttachmentInfo](https://developers.arcgis.com/javascript/latest/references/core/rest/query/support/AttachmentInfo/) field value that will drive the sorting of attachments.
   * If the value is not one of the following, attachments will not be displayed within the [AttachmentsContent](https://developers.arcgis.com/javascript/latest/references/core/popup/content/AttachmentsContent/).
   *
   * | Possible value | Description |
   * | ------ | ----------- |
   * | "ATT_NAME" | The attachment's [AttachmentInfo.name](https://developers.arcgis.com/javascript/latest/references/core/rest/query/support/AttachmentInfo/#name). |
   * | "ATTACHMENTID" | The attachment's [AttachmentInfo.id](https://developers.arcgis.com/javascript/latest/references/core/rest/query/support/AttachmentInfo/#id). |
   * | "CONTENT_TYPE" | The attachment's [AttachmentInfo.contentType](https://developers.arcgis.com/javascript/latest/references/core/rest/query/support/AttachmentInfo/#contentType). |
   * | "DATA_SIZE" | The attachment's [AttachmentInfo.size](https://developers.arcgis.com/javascript/latest/references/core/rest/query/support/AttachmentInfo/#size). |
   * | "AttachmentGlobalId" | The attachment's [AttachmentInfo.globalId](https://developers.arcgis.com/javascript/latest/references/core/rest/query/support/AttachmentInfo/#globalId). |
   */
  accessor field: string | null | undefined;
  /**
   * Set the ascending or descending sort order of the attachments.
   *
   * @default "ascending"
   */
  accessor order: "ascending" | "descending";
}
declare const AttachmentsOrderByInfoSuperclass: typeof JSONSupport & typeof ClonableMixin