@ecoflow-api/rest-client
Version:
A rest client for the Ecoflow API for NodeJS
1,142 lines (1,139 loc) • 604 kB
TypeScript
import { AnySchema, SmartPlugSn, SmartPlugQuotaAll, PowerStreamSerialNumber, PowerStreamQuotaAll, Delta2SerialNumber, Delta2QuotaAll, EnergyManagementParams, GlacierSerialNumber, GlacierQuotaAll, SmartHomePanelSerialNumber, ShpQuotaAll, ShpSplitPhaseInfoCfgList, ChSta, ShpScheduledChargingJobCfg, ShpScheduledDischargingJobCfg, DeltaProSerialNumber, DeltaProQuotaAll, inferSchema, DeviceListResponse, SetCommandResponse, QuotaAllResponse } from '@ecoflow-api/schemas';
import * as zod from 'zod';
/**
* Device abstract class.
*/
declare abstract class Device<SerialNumber extends string, ParsedProperties> {
protected restClient: RestClient;
readonly sn: SerialNumber;
constructor(restClient: RestClient, serialNumber: SerialNumber);
/**
* Parses the properties of the device.
*/
protected abstract parseProperties(data: any): ParsedProperties;
/**
* Sends a command with the given payload.
*/
protected sendCommand(payload: any, schema: AnySchema): Promise<{
code: "0";
message: "Success";
eagleEyeTraceId: string;
tid: string;
} | {
code: string;
message: string;
eagleEyeTraceId: string;
tid: string;
}>;
/**
* Retrieves the properties of the device asynchronously.
*/
getProperties(): Promise<ParsedProperties>;
}
/**
* Represents an unknown device.
*/
declare class UnknownDevice extends Device<string, Record<string, any>> {
/**
* Simply return the data as is as we don't know the device hence the properties as well.
*/
protected parseProperties(data: any): any;
}
/**
* Represents a smart plug device.
* @extends Device
*/
declare class SmartPlug extends Device<SmartPlugSn, SmartPlugQuotaAll> {
#private;
constructor(restClient: RestClient, sn: SmartPlugSn);
protected parseProperties(data: any): zod.objectOutputType<{
"2_1.brightness": zod.ZodNumber;
"2_1.country": zod.ZodNumber;
"2_1.current": zod.ZodNumber;
"2_1.errCode": zod.ZodNumber;
"2_1.freq": zod.ZodNumber;
"2_1.maxCur": zod.ZodNumber;
"2_1.switchSta": zod.ZodBoolean;
"2_1.temp": zod.ZodNumber;
"2_1.town": zod.ZodNumber;
"2_1.updateTime": zod.ZodString;
"2_1.volt": zod.ZodNumber;
"2_1.warnCode": zod.ZodNumber;
"2_1.watts": zod.ZodNumber;
"2_2.task1": zod.ZodObject<{
taskIndex: zod.ZodNumber;
type: zod.ZodNumber;
timeRange: zod.ZodObject<{
isConfig: zod.ZodBoolean;
isEnabled: zod.ZodOptional<zod.ZodBoolean>;
timeData: zod.ZodNumber;
timeMode: zod.ZodNumber;
startTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
stopTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
isConfig: zod.ZodBoolean;
isEnabled: zod.ZodOptional<zod.ZodBoolean>;
timeData: zod.ZodNumber;
timeMode: zod.ZodNumber;
startTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
stopTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
isConfig: zod.ZodBoolean;
isEnabled: zod.ZodOptional<zod.ZodBoolean>;
timeData: zod.ZodNumber;
timeMode: zod.ZodNumber;
startTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
stopTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
}, zod.ZodTypeAny, "passthrough">>;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
taskIndex: zod.ZodNumber;
type: zod.ZodNumber;
timeRange: zod.ZodObject<{
isConfig: zod.ZodBoolean;
isEnabled: zod.ZodOptional<zod.ZodBoolean>;
timeData: zod.ZodNumber;
timeMode: zod.ZodNumber;
startTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
stopTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
isConfig: zod.ZodBoolean;
isEnabled: zod.ZodOptional<zod.ZodBoolean>;
timeData: zod.ZodNumber;
timeMode: zod.ZodNumber;
startTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
stopTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
isConfig: zod.ZodBoolean;
isEnabled: zod.ZodOptional<zod.ZodBoolean>;
timeData: zod.ZodNumber;
timeMode: zod.ZodNumber;
startTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
stopTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
}, zod.ZodTypeAny, "passthrough">>;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
taskIndex: zod.ZodNumber;
type: zod.ZodNumber;
timeRange: zod.ZodObject<{
isConfig: zod.ZodBoolean;
isEnabled: zod.ZodOptional<zod.ZodBoolean>;
timeData: zod.ZodNumber;
timeMode: zod.ZodNumber;
startTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
stopTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
isConfig: zod.ZodBoolean;
isEnabled: zod.ZodOptional<zod.ZodBoolean>;
timeData: zod.ZodNumber;
timeMode: zod.ZodNumber;
startTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
stopTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
isConfig: zod.ZodBoolean;
isEnabled: zod.ZodOptional<zod.ZodBoolean>;
timeData: zod.ZodNumber;
timeMode: zod.ZodNumber;
startTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
stopTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
}, zod.ZodTypeAny, "passthrough">>;
}, zod.ZodTypeAny, "passthrough">>;
"2_2.task2": zod.ZodObject<{
taskIndex: zod.ZodNumber;
type: zod.ZodNumber;
timeRange: zod.ZodObject<{
isConfig: zod.ZodBoolean;
isEnabled: zod.ZodOptional<zod.ZodBoolean>;
timeData: zod.ZodNumber;
timeMode: zod.ZodNumber;
startTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
stopTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
isConfig: zod.ZodBoolean;
isEnabled: zod.ZodOptional<zod.ZodBoolean>;
timeData: zod.ZodNumber;
timeMode: zod.ZodNumber;
startTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
stopTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
isConfig: zod.ZodBoolean;
isEnabled: zod.ZodOptional<zod.ZodBoolean>;
timeData: zod.ZodNumber;
timeMode: zod.ZodNumber;
startTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
stopTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
}, zod.ZodTypeAny, "passthrough">>;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
taskIndex: zod.ZodNumber;
type: zod.ZodNumber;
timeRange: zod.ZodObject<{
isConfig: zod.ZodBoolean;
isEnabled: zod.ZodOptional<zod.ZodBoolean>;
timeData: zod.ZodNumber;
timeMode: zod.ZodNumber;
startTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
stopTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
isConfig: zod.ZodBoolean;
isEnabled: zod.ZodOptional<zod.ZodBoolean>;
timeData: zod.ZodNumber;
timeMode: zod.ZodNumber;
startTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
stopTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
isConfig: zod.ZodBoolean;
isEnabled: zod.ZodOptional<zod.ZodBoolean>;
timeData: zod.ZodNumber;
timeMode: zod.ZodNumber;
startTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
stopTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
}, zod.ZodTypeAny, "passthrough">>;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
taskIndex: zod.ZodNumber;
type: zod.ZodNumber;
timeRange: zod.ZodObject<{
isConfig: zod.ZodBoolean;
isEnabled: zod.ZodOptional<zod.ZodBoolean>;
timeData: zod.ZodNumber;
timeMode: zod.ZodNumber;
startTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
stopTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
isConfig: zod.ZodBoolean;
isEnabled: zod.ZodOptional<zod.ZodBoolean>;
timeData: zod.ZodNumber;
timeMode: zod.ZodNumber;
startTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
stopTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
isConfig: zod.ZodBoolean;
isEnabled: zod.ZodOptional<zod.ZodBoolean>;
timeData: zod.ZodNumber;
timeMode: zod.ZodNumber;
startTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
stopTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
}, zod.ZodTypeAny, "passthrough">>;
}, zod.ZodTypeAny, "passthrough">>;
"2_2.task3": zod.ZodObject<{
taskIndex: zod.ZodNumber;
type: zod.ZodNumber;
timeRange: zod.ZodObject<{
isConfig: zod.ZodBoolean;
isEnabled: zod.ZodOptional<zod.ZodBoolean>;
timeData: zod.ZodNumber;
timeMode: zod.ZodNumber;
startTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
stopTime: zod.ZodObject<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">, zod.objectInputType<{
sec: zod.ZodNumber;
week: zod.ZodNumber;
min: zod.ZodNumber;
hour: zod.ZodNumber;
month: zod.ZodNumber;
year: zod.ZodNumber;
day: zod.ZodNumber;
}, zod.ZodTypeAny, "passthrough">>;
}, "passthrough", zod.ZodTypeAny, zod.objectOutputType<{
isConfig: zod.ZodBoolean;
isEnab