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

export interface DateBinTimeIntervalProperties extends JSONSupportMixinProperties, ClonableMixinProperties, Partial<Pick<DateBinTimeInterval, "unit" | "value">> {}

/**
 * DateBinTimeInterval describes a length of time for a bin query in one of the temporal units such as `days`, `weeks`, or `years`.
 * DateBinTimeInterval is used to generate bins for temporal data when the binning is based on [DateBinParameters](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-DateBinParameters.html).
 *
 * @since 4.32
 */
export default class DateBinTimeInterval extends DateBinTimeIntervalSuperclass {
  constructor(properties?: DateBinTimeIntervalProperties);
  /**
   * Temporal unit used to generate bins or defines and an offset. It defines a length of time such as `years` or `months`.
   * The unit value is defined via [value](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-DateBinTimeInterval.html#value) property.
   */
  unit: DateBinTimeUnit;
  /** The numerical value of the time extent. This property works along with [unit](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-DateBinTimeInterval.html#unit) to define the time interval or time offset to generate date bins. */
  accessor value: number;
}
declare const DateBinTimeIntervalSuperclass: typeof JSONSupport & typeof ClonableMixin