import { AmazonMarketplace } from '@scaleleap/amazon-marketplaces'; export interface MWSOptions { marketplace: AmazonMarketplace; awsAccessKeyId: string; mwsAuthToken: string; sellerId: string; secretKey: string; } export declare type HttpMethod = 'GET' | 'POST'; export declare type ParameterTypes = string | number | (number | string | object)[] | boolean | { [key: string]: ParameterTypes; } | undefined; export declare type Parameters = Record; export declare type CleanParameters = Record; export declare enum Resource { FulfilmentInventory = "FulfillmentInventory", Orders = "Orders", Products = "Products", Reports = "Reports", Finances = "Finances", Sellers = "Sellers", Subscriptions = "Subscriptions", Feeds = "Feeds", ShipmentInvoicing = "ShipmentInvoicing", Recommendations = "Recommendations", MerchantFulfillment = "MerchantFulfillment", FulfillmentInboundShipment = "FulfillmentInboundShipment", FulfillmentOutboundShipment = "FulfillmentOutboundShipment", EasyShip = "EasyShip" } export interface ResourceActions { [Resource.Sellers]: 'ListMarketplaceParticipations' | 'ListMarketplaceParticipationsByNextToken' | 'GetServiceStatus'; [Resource.Orders]: 'ListOrders' | 'ListOrdersByNextToken' | 'GetOrder' | 'ListOrderItems' | 'ListOrderItemsByNextToken' | 'GetServiceStatus'; [Resource.Products]: 'ListMatchingProducts' | 'GetMatchingProduct' | 'GetMatchingProductForId' | 'GetCompetitivePricingForSKU' | 'GetCompetitivePricingForASIN' | 'GetLowestOfferListingsForSKU' | 'GetLowestOfferListingsForASIN' | 'GetLowestPricedOffersForSKU' | 'GetLowestPricedOffersForASIN' | 'GetMyFeesEstimate' | 'GetMyPriceForSKU' | 'GetMyPriceForASIN' | 'GetProductCategoriesForSKU' | 'GetProductCategoriesForASIN' | 'GetServiceStatus'; [Resource.FulfilmentInventory]: 'ListInventorySupply' | 'ListInventorySupplyByNextToken' | 'GetServiceStatus'; [Resource.Reports]: 'RequestReport' | 'GetReportRequestList' | 'GetReportRequestListByNextToken' | 'GetReportRequestCount' | 'CancelReportRequests' | 'GetReportList' | 'GetReportListByNextToken' | 'GetReportCount' | 'GetReport' | 'ManageReportSchedule' | 'GetReportScheduleList' | 'GetReportScheduleListByNextToken' | 'GetReportScheduleCount' | 'UpdateReportAcknowledgements'; [Resource.Finances]: 'ListFinancialEventGroups' | 'ListFinancialEventGroupsByNextToken' | 'ListFinancialEvents' | 'ListFinancialEventsByNextToken'; [Resource.Subscriptions]: 'RegisterDestination' | 'DeregisterDestination' | 'ListRegisteredDestinations' | 'SendTestNotificationToDestination' | 'CreateSubscription' | 'GetSubscription' | 'DeleteSubscription' | 'ListSubscriptions' | 'UpdateSubscription' | 'GetServiceStatus'; [Resource.Feeds]: 'SubmitFeed' | 'GetFeedSubmissionList' | 'GetFeedSubmissionListByNextToken' | 'GetFeedSubmissionCount' | 'CancelFeedSubmissions' | 'GetFeedSubmissionResult'; [Resource.ShipmentInvoicing]: 'GetFBAOutboundShipmentDetail' | 'SubmitFBAOutboundShipmentInvoice' | 'GetFBAOutboundShipmentInvoiceStatus' | 'GetServiceStatus'; [Resource.MerchantFulfillment]: 'GetEligibleShippingServices' | 'GetAdditionalSellerInputs' | 'CreateShipment' | 'GetShipment' | 'CancelShipment' | 'GetServiceStatus'; [Resource.FulfillmentInboundShipment]: 'GetInboundGuidanceForSKU' | 'GetInboundGuidanceForASIN' | 'CreateInboundShipmentPlan' | 'CreateInboundShipment' | 'UpdateInboundShipment' | 'GetPreorderInfo' | 'ConfirmPreorder' | 'GetPrepInstructionsForSKU' | 'GetPrepInstructionsForASIN' | 'PutTransportContent' | 'EstimateTransportRequest' | 'GetTransportContent' | 'ConfirmTransportRequest' | 'VoidTransportRequest' | 'GetPackageLabels' | 'GetUniquePackageLabels' | 'GetPalletLabels' | 'GetBillOfLading' | 'ListInboundShipments' | 'ListInboundShipmentsByNextToken' | 'ListInboundShipmentItems' | 'ListInboundShipmentItemsByNextToken' | 'GetServiceStatus'; [Resource.Recommendations]: 'GetLastUpdatedTimeForRecommendations' | 'ListRecommendations' | 'ListRecommendationsByNextToken' | 'GetServiceStatus'; [Resource.FulfillmentOutboundShipment]: 'GetFulfillmentPreview' | 'CreateFulfillmentOrder' | 'UpdateFulfillmentOrder' | 'ListAllFulfillmentOrders' | 'GetFulfillmentOrder' | 'ListAllFulfillmentOrdersByNextToken' | 'GetPackageTrackingDetails' | 'CancelFulfillmentOrder' | 'ListReturnReasonCodes' | 'CreateFulfillmentReturn' | 'GetServiceStatus'; [Resource.EasyShip]: 'ListPickupSlots' | 'CreateScheduledPackage' | 'UpdateScheduledPackages' | 'GetScheduledPackage' | 'GetServiceStatus'; } export interface Request { url: string; method: HttpMethod; headers: Record; data?: string; } export interface ResourceInfo { resource: TResource; version: string; action: ResourceActions[TResource]; parameters: Parameters; } export interface RequestMeta { requestId: string; timestamp: Date; quotaMax: number; quotaRemaining: number; quotaResetOn: Date; } export interface RequestResponse { data: string; headers: Record; } export declare const cleanParameters: (parameters: Parameters, baseObject?: Record, outerKey?: string | undefined) => CleanParameters; export declare const parseResponse: (response: RequestResponse, parseString?: boolean) => [string | T, RequestMeta]; export declare class HttpClient { private options; private fetch; constructor(options: MWSOptions, fetch?: (meta: Request) => Promise); request(method: HttpMethod, info: ResourceInfo, body?: string, stringResponse?: boolean): Promise<[TResponse | string, RequestMeta]>; }