import { z } from "zod"; import { LgsType, ShipType, TradeType } from "../constants.js"; /** * 使用 Zod schemas 驗證請求資料的服務。 */ export declare class ValidatorService { /** * Zod schema for MapRequest. */ static readonly mapRequestSchema: z.ZodObject<{ MerchantOrderNo: z.ZodString; LgsType: z.ZodNativeEnum; ShipType: z.ZodNativeEnum; ReturnURL: z.ZodString; TimeStamp: z.ZodUnion<[z.ZodString, z.ZodNumber]>; LogisticsSubType: z.ZodOptional; IsCollection: z.ZodOptional>; ServerReplyURL: z.ZodOptional; ExtraData: z.ZodOptional; Device: z.ZodOptional; }, "strip", z.ZodTypeAny, { MerchantOrderNo: string; TimeStamp: string | number; LgsType: LgsType; ShipType: ShipType; ReturnURL: string; LogisticsSubType?: string | undefined; IsCollection?: "Y" | "N" | undefined; ServerReplyURL?: string | undefined; ExtraData?: string | undefined; Device?: number | undefined; }, { MerchantOrderNo: string; TimeStamp: string | number; LgsType: LgsType; ShipType: ShipType; ReturnURL: string; LogisticsSubType?: string | undefined; IsCollection?: "Y" | "N" | undefined; ServerReplyURL?: string | undefined; ExtraData?: string | undefined; Device?: number | undefined; }>; /** * Zod schema for CreateOrderRequest. */ static readonly createOrderRequestSchema: z.ZodObject<{ MerchantOrderNo: z.ZodString; TradeType: z.ZodNativeEnum; UserName: z.ZodString; UserTel: z.ZodOptional; UserEmail: z.ZodString; StoreID: z.ZodOptional; Amt: z.ZodNumber; LgsType: z.ZodNativeEnum; ShipType: z.ZodNativeEnum; TimeStamp: z.ZodUnion<[z.ZodString, z.ZodNumber]>; ReceiverName: z.ZodOptional; ReceiverPhone: z.ZodOptional; ReceiverCellPhone: z.ZodOptional; ReceiverEmail: z.ZodOptional; LogisticsSubType: z.ZodOptional; }, "strip", z.ZodTypeAny, { MerchantOrderNo: string; TimeStamp: string | number; LgsType: LgsType; ShipType: ShipType; TradeType: TradeType; UserName: string; UserEmail: string; Amt: number; LogisticsSubType?: string | undefined; UserTel?: string | undefined; StoreID?: string | undefined; ReceiverName?: string | undefined; ReceiverPhone?: string | undefined; ReceiverCellPhone?: string | undefined; ReceiverEmail?: string | undefined; }, { MerchantOrderNo: string; TimeStamp: string | number; LgsType: LgsType; ShipType: ShipType; TradeType: TradeType; UserName: string; UserEmail: string; Amt: number; LogisticsSubType?: string | undefined; UserTel?: string | undefined; StoreID?: string | undefined; ReceiverName?: string | undefined; ReceiverPhone?: string | undefined; ReceiverCellPhone?: string | undefined; ReceiverEmail?: string | undefined; }>; /** * Zod schema for QueryOrderRequest. */ static readonly queryOrderRequestSchema: z.ZodObject<{ MerchantOrderNo: z.ZodString; TimeStamp: z.ZodUnion<[z.ZodString, z.ZodNumber]>; LogisticsID: z.ZodOptional; }, "strip", z.ZodTypeAny, { MerchantOrderNo: string; TimeStamp: string | number; LogisticsID?: string | undefined; }, { MerchantOrderNo: string; TimeStamp: string | number; LogisticsID?: string | undefined; }>; /** * Zod schema for PrintOrderRequest. */ static readonly printOrderRequestSchema: z.ZodObject<{ MerchantOrderNo: z.ZodString; TimeStamp: z.ZodUnion<[z.ZodString, z.ZodNumber]>; LogisticsID: z.ZodOptional; }, "strip", z.ZodTypeAny, { MerchantOrderNo: string; TimeStamp: string | number; LogisticsID?: string | undefined; }, { MerchantOrderNo: string; TimeStamp: string | number; LogisticsID?: string | undefined; }>; /** * 使用 Zod schema 驗證資料。 * * @template T - 資料的型別。 * @param schema - Zod schema。 * @param data - 要驗證的資料。 * @returns 驗證後的資料。 * @throws {ValidationError} 當驗證失敗時。 */ static validate(schema: z.ZodSchema, data: unknown): T; }