import { DimensionsUnitEnum } from '../merchant-fulfillment/codec'; import { RequireOnlyOne } from '../types'; export declare const canonicalizeInboundShipmentPlanRequestItems: (requestItem: InboundShipmentPlanRequestItem) => { SellerSKU: string; ASIN: string | undefined; Condition: ConditionFIS | undefined; Quantity: number; QuantityInCase: number | undefined; 'PrepDetailsList.PrepDetails': PrepDetails[] | undefined; }; export declare const canonicalizeParametersCreateUpdateInboundShipmentPlan: (parameters: CreateInboundShipmentPlanParameters) => { ShipToCountryCode: string | undefined; ShipFromAddress: AddressFIS; ShipToCountrySubdivisionCode: string | undefined; LabelPrepPreference: LabelPrepPreference | undefined; 'InboundShipmentPlanRequestItems.member': { SellerSKU: string; ASIN: string | undefined; Condition: ConditionFIS | undefined; Quantity: number; QuantityInCase: number | undefined; 'PrepDetailsList.PrepDetails': PrepDetails[] | undefined; }[]; }; export declare const canonicalizeDate: (date: Date | undefined) => string | undefined; export declare const canonicalizeInboundShipmentItem: (item: InboundShipmentItem) => { ShipmentId: string | undefined; SellerSKU: string; FulfillmentNetworkSKU: string | undefined; QuantityShipped: number; QuantityReceived: number | undefined; QuantityInCase: number | undefined; /** * Note: // C# library has this field as 'PrepDetailsList.PrepDetails' * but documentation says it's 'PrepDetailsList.member'. * Following C# because docs is unreliable */ 'PrepDetailsList.PrepDetails': PrepDetails[] | undefined; ReleaseDate: string | undefined; }; export declare const canonicalizeParametersCreateUpdateInboundShipment: (parameters: CreateInboundShipmentParameters) => { ShipmentId: string; InboundShipmentHeader: InboundShipmentHeader; 'InboundShipmentItems.member': { ShipmentId: string | undefined; SellerSKU: string; FulfillmentNetworkSKU: string | undefined; QuantityShipped: number; QuantityReceived: number | undefined; QuantityInCase: number | undefined; /** * Note: // C# library has this field as 'PrepDetailsList.PrepDetails' * but documentation says it's 'PrepDetailsList.member'. * Following C# because docs is unreliable */ 'PrepDetailsList.PrepDetails': PrepDetails[] | undefined; ReleaseDate: string | undefined; }[]; }; export interface GetInboundGuidanceForSKUParameters { SellerSKUList: string[]; MarketplaceId: string; } export interface GetInboundGuidanceForASINParameters { ASINList: string[]; MarketplaceId: string; } export interface AddressFIS { Name: string; AddressLine1: string; AddressLine2?: string; City: string; DistrictOrCounty?: string; StateOrProvinceCode?: string; CountryCode: string; PostalCode?: string; [key: string]: string | undefined; } export declare type LabelPrepPreference = 'SELLER_LABEL' | 'AMAZON_LABEL_ONLY' | 'AMAZON_LABEL_PREFERRED'; export declare type ConditionFIS = 'NewItem' | 'NewWithWarranty' | 'NewOEM' | 'NewOpenBox' | 'UsedLikeNew' | 'UsedVeryGood' | 'UsedGood' | 'UsedAcceptable' | 'UsedPoor' | 'UsedRefurbished' | 'CollectibleLikeNew' | 'CollectibleVeryGood' | 'CollectibleGood' | 'CollectibleAcceptable' | 'CollectiblePoor' | 'RefurbishedWithWarranty' | 'Refurbished' | 'Club'; export declare enum PrepInstructionEnum { Polybagging = "Polybagging", BubbleWrapping = "BubbleWrapping", Taping = "Taping", BlackShrinkWrapping = "BlackShrinkWrapping", Labeling = "Labeling", HangGarment = "HangGarment" } export declare type PrepInstruction = keyof typeof PrepInstructionEnum; export declare enum PrepOwnerEnum { AMAZON = "AMAZON", SELLER = "SELLER" } export declare type PrepOwner = keyof typeof PrepOwnerEnum; export interface PrepDetails { PrepInstruction: PrepInstruction; PrepOwner: PrepOwner; } export interface InboundShipmentPlanRequestItem { SellerSKU: string; ASIN?: string; Condition?: ConditionFIS; Quantity: number; QuantityInCase?: number; PrepDetailsList?: PrepDetails[]; } export interface CreateInboundShipmentPlanParameters { ShipFromAddress: AddressFIS; ShipToCountryCode?: string; ShipToCountrySubdivisionCode?: string; LabelPrepPreference?: LabelPrepPreference; InboundShipmentPlanRequestItems: InboundShipmentPlanRequestItem[]; } export declare type ShipmentStatus = 'WORKING' | 'SHIPPED' | 'CANCELLED'; export declare type IntendedBoxContentsSource = 'NONE' | 'FEED' | '2D_BARCODE'; export interface InboundShipmentHeader { ShipmentName: string; ShipFromAddress: AddressFIS; DestinationFulfillmentCenterId: string; LabelPrepPreference: LabelPrepPreference; AreCasesRequired?: boolean; ShipmentStatus: ShipmentStatus; IntendedBoxContentsSource?: IntendedBoxContentsSource; [key: string]: string | undefined | boolean | AddressFIS; } export interface InboundShipmentItem { ShipmentId?: string; SellerSKU: string; FulfillmentNetworkSKU?: string; QuantityShipped: number; QuantityReceived?: number; QuantityInCase?: number; PrepDetailsList?: PrepDetails[]; ReleaseDate?: Date; } export interface CreateInboundShipmentParameters { ShipmentId: string; InboundShipmentHeader: InboundShipmentHeader; InboundShipmentItems: InboundShipmentItem[]; } export declare type GetPreorderInfoParameters = SingleShipmentIdParameters; export interface ConfirmPreorderParameters { ShipmentId: string; NeedByDate: Date; } export interface GetPrepInstructionsForSKUParameters { SellerSKUList: string[]; ShipToCountryCode: string; } export interface GetPrepInstructionsForASINParameters { ASINList: string[]; ShipToCountryCode: string; } export interface FIBAmount { CurrencyCode: string; Value: string; [key: string]: string; } export declare type FIBDimensionsUnit = keyof typeof DimensionsUnitEnum; export interface FIBDimensions { Unit: FIBDimensionsUnit; Length: number; Width: number; Height: number; } export declare enum WeightUnitEnum { 'pounds' = 0, 'kilograms' = 1 } export declare type FIBWeightUnit = keyof typeof WeightUnitEnum; export interface FIBWeight { Unit: FIBWeightUnit; Value: number; [key: string]: string | number; } export declare enum PackageStatusEnum { 'SHIPPED' = 0, 'IN_TRANSIT' = 1, 'DELIVERED' = 2, 'CHECKED_IN' = 3, 'RECEIVING' = 4, 'CLOSED' = 5 } export interface PartneredSmallParcelPackageInput { Dimensions: FIBDimensions; Weight: FIBWeight; } export interface PartneredSmallParcelDataInput { CarrierName: string; PackageList: PartneredSmallParcelPackageInput[]; } export interface NonPartneredSmallParcelPackageOutput { TrackingId: string; } export interface NonPartneredSmallParcelDataInput { CarrierName: string; PackageList: NonPartneredSmallParcelPackageOutput[]; } export interface Contact { Name: string; Phone: string; Email: string; Fax: string; [key: string]: string; } export interface Pallet { Dimension: FIBDimensions; Weight?: FIBWeight; IsStacked: boolean; } export interface PartneredLtlDataInput { Contact: Contact; BoxCount: number; SellerFreightClass?: string; FreightReadyDate: Date; PalletList?: Pallet[]; TotalWeight?: FIBWeight; SellerDeclaredValue?: FIBAmount; } export interface NonPartneredLtlDataInput { CarrierName: string; ProNumber: string; } export interface PutTransportContentParameters { ShipmentId: string; IsPartnered: boolean; ShipmentType: string; TransportDetails: RequireOnlyOne<{ PartneredSmallParcelData?: PartneredSmallParcelDataInput; NonPartneredSmallParcelData?: NonPartneredSmallParcelDataInput; PartneredLtlData?: PartneredLtlDataInput; NonPartneredLtlData?: NonPartneredLtlDataInput; }, 'PartneredSmallParcelData' | 'NonPartneredSmallParcelData' | 'PartneredLtlData' | 'NonPartneredLtlData'>; } export interface PartneredSmallParcelData { 'PackageList.member': PartneredSmallParcelPackageInput[]; CarrierName: string; [key: string]: string | PartneredSmallParcelPackageInput[]; } export interface NonPartneredSmallParcelData { CarrierName: string; 'PackageList.member': NonPartneredSmallParcelPackageOutput[]; [key: string]: string | NonPartneredSmallParcelPackageOutput[]; } export interface PartneredLtlData { Contact: Contact; BoxCount: number; SellerFreightClass?: string; FreightReadyDate?: string; 'PalletList.member'?: Pallet[]; TotalWeight?: FIBWeight; SellerDeclaredValue?: FIBAmount; [key: string]: string | undefined | number | Pallet[] | FIBWeight | FIBAmount | Contact; } export interface NonPartneredLtlData { CarrierName: string; ProNumber: string; [key: string]: string; } export interface TransportDetails { PartneredSmallParcelData?: PartneredSmallParcelData; NonPartneredSmallParcelData?: NonPartneredSmallParcelData; PartneredLtlData?: PartneredLtlData; NonPartneredLtlData?: NonPartneredLtlData; [key: string]: undefined | PartneredSmallParcelData | NonPartneredSmallParcelData | PartneredLtlData | NonPartneredLtlData; } export interface CanonicalizedPutTransportContentParameters { ShipmentId: string; IsPartnered: boolean; ShipmentType: string; TransportDetails: TransportDetails; [key: string]: string | boolean | TransportDetails; } export declare const canonicalizePutTransportContentParameters: (parameters: PutTransportContentParameters) => CanonicalizedPutTransportContentParameters; export interface SingleShipmentIdParameters { ShipmentId: string; } export declare type EstimateTransportRequestParameters = SingleShipmentIdParameters; export declare type GetTransportContentParameters = SingleShipmentIdParameters; export declare type ConfirmTransportRequestParameters = SingleShipmentIdParameters; export declare type VoidTransportRequestParameters = SingleShipmentIdParameters; export declare enum PageTypeEnum { 'PackageLabel_Letter_2' = 0, 'PackageLabel_Letter_6' = 1, 'PackageLabel_A4_2' = 2, 'PackageLabel_A4_4' = 3, 'PackageLabel_Plain_Paper' = 4 } export declare type PageType = keyof typeof PageTypeEnum; export interface GetPackageLabelsParameters { ShipmentId: string; PageType: PageType; NumberOfPackages?: number; } export interface GetUniquePackageLabelsParameters { ShipmentId: string; PageType: PageType; PackageLabelsToPrint: string[]; } export interface GetPalletLabelsParameters { ShipmentId: string; PageType: PageType; NumberOfPallets: number; } export declare type GetBillOfLadingParameters = SingleShipmentIdParameters; export interface ListInboundShipmentsParameters { ShipmentStatusList?: string[]; ShipmentIdList?: string[]; LastUpdatedAfter?: Date; LastUpdatedBefore?: Date; } export declare type ListInboundShipmentItemsParameters = RequireOnlyOne<{ ShipmentId?: string; LastUpdatedAfter?: Date; LastUpdatedBefore?: Date; }, 'ShipmentId' | 'LastUpdatedAfter'>;