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

export interface EditFieldsInfoProperties extends JSONSupportMixinProperties, ClonableMixinProperties {}

/**
 * The fields that record who adds or edits data in the feature service and when the edit is made.
 *
 * @since 4.11
 */
export default abstract class EditFieldsInfo extends EditFieldsInfoSuperclass {
  /** The name of the field that stores the date and time the feature was created. */
  get creationDateField(): string;
  /** The name of the field that stores the name of the user who created the feature. */
  get creatorField(): string;
  /** The name of the field that stores the date and time the feature was last edited. */
  get editDateField(): string;
  /** The name of the field that stores the name of the user who last edited the feature. */
  get editorField(): string;
}
declare const EditFieldsInfoSuperclass: typeof JSONSupport & typeof ClonableMixin