const require_errors = require('./errors.js');

//#region ../../node_modules/.pnpm/luxon@3.5.0/node_modules/luxon/src/zone.js
/**
* @interface
*/
var Zone = class {
	/**
	* The type of zone
	* @abstract
	* @type {string}
	*/
	get type() {
		throw new require_errors.ZoneIsAbstractError();
	}
	/**
	* The name of this zone.
	* @abstract
	* @type {string}
	*/
	get name() {
		throw new require_errors.ZoneIsAbstractError();
	}
	/**
	* The IANA name of this zone.
	* Defaults to `name` if not overwritten by a subclass.
	* @abstract
	* @type {string}
	*/
	get ianaName() {
		return this.name;
	}
	/**
	* Returns whether the offset is known to be fixed for the whole year.
	* @abstract
	* @type {boolean}
	*/
	get isUniversal() {
		throw new require_errors.ZoneIsAbstractError();
	}
	/**
	* Returns the offset's common name (such as EST) at the specified timestamp
	* @abstract
	* @param {number} ts - Epoch milliseconds for which to get the name
	* @param {Object} opts - Options to affect the format
	* @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.
	* @param {string} opts.locale - What locale to return the offset name in.
	* @return {string}
	*/
	offsetName(ts, opts) {
		throw new require_errors.ZoneIsAbstractError();
	}
	/**
	* Returns the offset's value as a string
	* @abstract
	* @param {number} ts - Epoch milliseconds for which to get the offset
	* @param {string} format - What style of offset to return.
	*                          Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively
	* @return {string}
	*/
	formatOffset(ts, format) {
		throw new require_errors.ZoneIsAbstractError();
	}
	/**
	* Return the offset in minutes for this zone at the specified timestamp.
	* @abstract
	* @param {number} ts - Epoch milliseconds for which to compute the offset
	* @return {number}
	*/
	offset(ts) {
		throw new require_errors.ZoneIsAbstractError();
	}
	/**
	* Return whether this Zone is equal to another zone
	* @abstract
	* @param {Zone} otherZone - the zone to compare
	* @return {boolean}
	*/
	equals(otherZone) {
		throw new require_errors.ZoneIsAbstractError();
	}
	/**
	* Return whether this Zone is valid.
	* @abstract
	* @type {boolean}
	*/
	get isValid() {
		throw new require_errors.ZoneIsAbstractError();
	}
};

//#endregion
exports.default = Zone;