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

export interface AttributeTableFieldOrderProperties extends JSONSupportMixinProperties, ClonableMixinProperties, Partial<Pick<AttributeTableFieldOrder, "field" | "order">> {}

/** This object sets a field and sort order for how records display within the table. */
export default abstract class AttributeTableFieldOrder extends AttributeTableFieldOrderSuperclass {
  /** Name of a field. The value of this field will drive the sorting. */
  accessor field: string | null | undefined;
  /** Indicates whether features are sorted in ascending or descending order of the field values. */
  accessor order: "asc" | "desc" | null | undefined;
}
declare const AttributeTableFieldOrderSuperclass: typeof JSONSupport & typeof ClonableMixin