import * as API from '..'; import { FreightAppMetadata } from './freight-app-metadata'; import { Handler } from '@shipengine/connect-runtime'; /** * @description This defines a connect freight app */ export interface FreightAppDefinition { Metadata: FreightAppMetadata; /** * @description This method creates connections to freight carrier accounts * @param request The freight carrier credentials used to connect the account */ ConnectFreightCarrier?: (request: API.ConnectFreightCarrierRequest) => API.ConnectFreightCarrierResponse | Promise; /** * @description This method retrieves a freight quote * @param request The information necessary to get a quote from a carrier */ FreightQuote?: (request: API.FreightQuoteRequest) => API.FreightQuoteResponse | Promise; /** * @description This method retrieves the freight documents for a shipment * @param request The information necessary to access freight shipment documents */ FreightShipmentDocuments?: (request: API.FreightShipmentDocumentsRequest) => API.FreightShipmentDocumentsRequest | Promise; /** * @description This method retrieves a freight spot/volume quote * @param request The information necessary to get a quote from a carrier */ FreightSpotQuote?: (request: API.FreightSpotQuoteRequest) => API.FreightSpotQuoteResponse | Promise; /** * @description This method schedules a freight pickup * @param request The information necessary to schedule a freight pickup */ ScheduleFreightPickup?: (request: API.ScheduleFreightPickupRequest) => API.ScheduleFreightPickupResponse | Promise; /** * @description This method retrieves tracking information for a freight shipment * @param request The information necessary to track a freight shipment */ TrackFreightShipment?: (request: API.TrackFreightShipmentRequest) => API.TrackFreightShipmentResponse | Promise; /** * @description A collection of additional routes that can be used to extend the functionality of the app. * Extension methods are not automatically called by the ShipEngine platform, and require working with Auctane developers to implement. * The request and response shapes of each method will be defined by Auctane, but will not be documented as part of Connect unless * they are made public and the functionality is taken out of extensions and into a named method. */ Extensions?: Record; }