uri")) * * @see authLogin() for services that require login+password * @see authApiKey() for services that require api key * * @since 1.0.0 */ public function authRedirectLogin( string $client, ?string $redirect = null, array $payload = [] ) : HttpRequest; /** * Parses the redirect code after using authRedirectLogin() and creates a token from that code. * * @param string $login Login name/email * @param string $password Password * @param HttpRequest $redirect redirect request after the user successfully logged in * * @return int Returns auth status * * @see authRedirectLogin() * * @since 1.0.0 */ public function tokenFromRedirect( string $login, string $password, HttpRequest $redirect ) : int; /** * Connect to API * * @param string $key Api key/permanent token * * @return int Returns auth status * * @since 1.0.0 */ public function authApiKey(string $key) : int; /** * Refreshes token using a refresh token * * @return int Returns auth status * * @since 1.0.0 */ public function refreshToken() : int; /** * Create shipment. * * @param array $sender Sender * @param array $shipFrom Ship from location (sometimes sender != pickup location) * @param array $receiver Receiver * @param array $package Package * @param array $data Shipping data * * @return array * * @since 1.0.0 */ public function ship( array $sender, array $shipFrom, array $receiver, array $package, array $data ) : array; /** * Cancel shipment. * * @param string $shipment Shipment id * @param string[] $packages Packed ids (if a shipment consists of multiple packages) * * @return bool * * @since 1.0.0 */ public function cancel(string $shipment, array $packages = []) : bool; /** * Track shipment. * * @param string $shipment Shipment id * * @return array * * @since 1.0.0 */ public function track(string $shipment) : array; }