export interface IShiptimeAddress { readonly companyName: string; readonly streetAddress: string; readonly streetAddress2?: string; readonly city: string; readonly countryCode: string; readonly state: string; readonly postalCode: string; readonly attention?: string; readonly email: string; readonly phone: string; readonly instructions?: string; readonly residential: boolean; readonly notify: boolean; } export interface IShiptimeItem { readonly length: number; readonly width: number; readonly height: number; readonly weight: number; readonly declaredValue: { readonly currency: 'CAD' | 'USD'; readonly amount: number; }; readonly description: string; } export default interface IShiptimeQuoteRequestBody { readonly from: IShiptimeAddress; readonly to: IShiptimeAddress; readonly packageType: 'PACKAGE' | 'LETTER' | 'PAK' | 'MY_ENVELOPE' | 'PALLET'; readonly lineItems: IShiptimeItem[]; readonly unitOfMeasurement: 'IMPERIAL' | 'METRIC'; readonly serviceOptions: 'SATURDAY_DELIVERY' | 'APPOINTMENT' | 'SIGNATURE' | 'SIGNATURE_ADULT' | 'NO_SIGNATURE_REQUIRED' | 'SPECIAL_HANDLING' | 'SPECIAL_EQUIPMENT' | 'TAILGATE_ORIGIN' | 'TAILGATE_DESTINATION' | 'TAILGATE_BOTH'[]; readonly shipDate: string; readonly insuranceType?: 'SHIPTIME' | 'CARRIER'; readonly customsInvoice?: { readonly invoiceContact: { readonly companyName: string; readonly streetAddress: string; readonly streetAddress2: string; readonly city: string; readonly countryCode: string; readonly state: string; readonly postalCode: string; readonly attention: string; readonly email: string; readonly phone?: string; readonly instructions?: string; readonly residential?: boolean; readonly notify?: boolean; readonly customsBroker?: string; readonly shipperTaxId?: string; }; readonly dutiesAndTaxes: { readonly dutiable?: boolean; readonly paidBy: 'CONSIGNEE' | 'SHIPPER'; }; readonly currency: 'CAD' | 'USD'; readonly invoiceItems: { readonly quantity: 0; readonly code: string; readonly description: string; readonly origin: string; readonly unitPrice: 0; }[]; }; } export interface IShiptimeQuoteResponse { readonly availableRates: IShiptimeQuoteSingle[]; messages?: string[]; } export interface IShiptimeQuoteSingle { readonly baseCharge: { currency: 'CAD' | 'USD'; amount: number; }; readonly surcharges: { readonly price: { readonly currency: 'CAD' | 'USD'; readonly amount: number; }; readonly code: string; readonly name: string; }[]; readonly taxes: { readonly price: { readonly currency: 'CAD' | 'USD'; readonly amount: number; }; readonly code: string; readonly name: string; }[]; readonly totalCharge: { readonly currency: 'CAD' | 'USD'; readonly amount: number; }; readonly totalBeforeTaxes: { readonly currency: 'CAD' | 'USD'; readonly amount: number; }; readonly exchangeRate: number; readonly carrierId: string; readonly carrierName: string; readonly serviceId: string; readonly serviceName: string; readonly transitDays: number; readonly cutoffTime: string; readonly accessTimeInterval: string; readonly serviceTerms: string; readonly quoteId: string; }