/*
All material copyright Esri, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
*/
import{__decorate as t}from"tslib";import o from"./Analysis.js";import e from"./ShadowCast/DiscreteOptions.js";import s from"./ShadowCast/MinDurationOptions.js";import i from"./ShadowCast/TotalDurationOptions.js";import{convertTime as a}from"../core/timeUtils.js";import{property as n,subclass as r}from"../core/accessorSupport/decorators.js";let p=class extends o{constructor(t){super(t),this.type="shadow-cast",this.utcOffset=null,this.startTimeOfDay=a(10,"hours","milliseconds"),this.endTimeOfDay=a(16,"hours","milliseconds"),this.mode="min-duration",this.discreteOptions=new e,this.totalDurationOptions=new i,this.minDurationOptions=new s,this.date??=new Date}set date(t){const o=new Date(t);o.setHours(0,0,0,0),this._set("date",o)}get valid(){return!0}equals(t){return this===t||super.equals(t)&&this.date.getTime()===t.date.getTime()&&this.utcOffset===t.utcOffset&&this.startTimeOfDay===t.startTimeOfDay&&this.endTimeOfDay===t.endTimeOfDay&&this.mode===t.mode&&this.discreteOptions.equals(t.discreteOptions)&&this.totalDurationOptions.equals(t.totalDurationOptions)&&this.minDurationOptions.equals(t.minDurationOptions)}clear(){throw new Error("clear() is not supported on ShadowCastAnalysis.")}};t([n({type:["shadow-cast"]})],p.prototype,"type",void 0),t([n({type:Date,nonNullable:!0})],p.prototype,"date",null),t([n({})],p.prototype,"utcOffset",void 0),t([n({type:Number,nonNullable:!0})],p.prototype,"startTimeOfDay",void 0),t([n({type:Number,nonNullable:!0})],p.prototype,"endTimeOfDay",void 0),t([n({type:["discrete","min-duration","total-duration"],nonNullable:!0})],p.prototype,"mode",void 0),t([n({type:e,nonNullable:!0})],p.prototype,"discreteOptions",void 0),t([n({type:i,nonNullable:!0})],p.prototype,"totalDurationOptions",void 0),t([n({type:s,nonNullable:!0})],p.prototype,"minDurationOptions",void 0),t([n({readOnly:!0})],p.prototype,"valid",null),p=t([r("esri.analysis.ShadowCastAnalysis")],p);const l=p;export{l as default};
