/**
 * ShipStation API v2
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 2.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import type { Configuration } from '../configuration';
import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios';
import { type RequestArgs, BaseAPI } from '../base';
import type { GetShipmentByExternalIdResponseBody } from '../models';
import type { GetShipmentByIdResponseBody } from '../models';
import type { ListShipmentRatesResponseBody } from '../models';
import type { ListShipmentsResponseBody } from '../models';
import type { ShipmentStatus } from '../models';
import type { ShipmentsSortBy } from '../models';
import type { SortDir } from '../models';
import type { TagShipmentResponseBody } from '../models';
/**
 * ShipmentsApi - axios parameter creator
 * @export
 */
export declare const ShipmentsApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * Mark a shipment cancelled, if it is no longer needed or being used by your organized. Any label associated with the shipment needs to be voided first An example use case would be if a batch label creation job is going to run at a set time and only queries `pending` shipments. Marking a shipment as cancelled would remove it from this process
     * @summary Cancel a shipment
     * @param {string} shipmentId Shipment ID
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    cancelShipments: (shipmentId: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Query Shipments created using your own custom ID convention using this endpoint
     * @summary Get shipment by external id
     * @param {string} externalShipmentId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getShipmentByExternalId: (externalShipmentId: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Get an individual shipment based on its ID
     * @summary Get shipment by id
     * @param {string} shipmentId Shipment ID
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getShipmentById: (shipmentId: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Get Rates for the shipment information associated with the shipment ID
     * @summary Get shipment rates
     * @param {string} shipmentId Shipment ID
     * @param {string} [createdAtStart] Used to create a filter for when a resource was created (ex. A shipment that was created after a certain time)
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listShipmentRates: (shipmentId: string, createdAtStart?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Get list of Shipments
     * @summary List shipments
     * @param {string} pickupId
     * @param {ShipmentStatus} [shipmentStatus]
     * @param {string} [batchId] Batch ID
     * @param {string} [createdAtStart] Used to create a filter for when a resource was created (ex. A shipment that was created after a certain time)
     * @param {string} [createdAtEnd] Used to create a filter for when a resource was created, (ex. A shipment that was created before a certain time)
     * @param {string} [modifiedAtStart] Used to create a filter for when a resource was modified (ex. A shipment that was modified after a certain time)
     * @param {string} [modifiedAtEnd] Used to create a filter for when a resource was modified (ex. A shipment that was modified before a certain time)
     * @param {number} [page] Return a specific page of results. Defaults to the first page. If set to a number that\&#39;s greater than the number of pages of results, an empty page is returned.
     * @param {number} [pageSize] The number of results to return per response.
     * @param {string} [salesOrderId] Sales Order ID
     * @param {SortDir} [sortDir] Controls the sort order of the query.
     * @param {string} [shipmentNumber] The user or order source defined shipment number
     * @param {string} [shipToName] The name associated with the ship_to
     * @param {string} [itemKeyword] Returns shipments that contain items that match the specified keyword. Fields searched are Sku, Description, and Options.
     * @param {string} [paymentDateStart] Used to create a filter for resources based on the payment_date parameter after a certain time.
     * @param {string} [paymentDateEnd] Used to create a filter for resources based on the payment_date parameter before a certain time.
     * @param {string} [storeId] Store ID
     * @param {string} [externalShipmentId]
     * @param {ShipmentsSortBy} [sortBy]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listShipments: (pickupId: string, shipmentStatus?: ShipmentStatus, batchId?: string, createdAtStart?: string, createdAtEnd?: string, modifiedAtStart?: string, modifiedAtEnd?: string, page?: number, pageSize?: number, salesOrderId?: string, sortDir?: SortDir, shipmentNumber?: string, shipToName?: string, itemKeyword?: string, paymentDateStart?: string, paymentDateEnd?: string, storeId?: string, externalShipmentId?: string, sortBy?: ShipmentsSortBy, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Add a tag to the shipment object
     * @summary Add tag to shipment
     * @param {string} shipmentId Shipment ID
     * @param {string} tagName
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    tagShipment: (shipmentId: string, tagName: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Remove an existing tag from the Shipment object
     * @summary Remove tag from shipment
     * @param {string} shipmentId Shipment ID
     * @param {string} tagName
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    untagShipment: (shipmentId: string, tagName: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * ShipmentsApi - functional programming interface
 * @export
 */
export declare const ShipmentsApiFp: (configuration?: Configuration) => {
    /**
     * Mark a shipment cancelled, if it is no longer needed or being used by your organized. Any label associated with the shipment needs to be voided first An example use case would be if a batch label creation job is going to run at a set time and only queries `pending` shipments. Marking a shipment as cancelled would remove it from this process
     * @summary Cancel a shipment
     * @param {string} shipmentId Shipment ID
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    cancelShipments(shipmentId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<string>>;
    /**
     * Query Shipments created using your own custom ID convention using this endpoint
     * @summary Get shipment by external id
     * @param {string} externalShipmentId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getShipmentByExternalId(externalShipmentId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetShipmentByExternalIdResponseBody>>;
    /**
     * Get an individual shipment based on its ID
     * @summary Get shipment by id
     * @param {string} shipmentId Shipment ID
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getShipmentById(shipmentId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetShipmentByIdResponseBody>>;
    /**
     * Get Rates for the shipment information associated with the shipment ID
     * @summary Get shipment rates
     * @param {string} shipmentId Shipment ID
     * @param {string} [createdAtStart] Used to create a filter for when a resource was created (ex. A shipment that was created after a certain time)
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listShipmentRates(shipmentId: string, createdAtStart?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ListShipmentRatesResponseBody>>;
    /**
     * Get list of Shipments
     * @summary List shipments
     * @param {string} pickupId
     * @param {ShipmentStatus} [shipmentStatus]
     * @param {string} [batchId] Batch ID
     * @param {string} [createdAtStart] Used to create a filter for when a resource was created (ex. A shipment that was created after a certain time)
     * @param {string} [createdAtEnd] Used to create a filter for when a resource was created, (ex. A shipment that was created before a certain time)
     * @param {string} [modifiedAtStart] Used to create a filter for when a resource was modified (ex. A shipment that was modified after a certain time)
     * @param {string} [modifiedAtEnd] Used to create a filter for when a resource was modified (ex. A shipment that was modified before a certain time)
     * @param {number} [page] Return a specific page of results. Defaults to the first page. If set to a number that\&#39;s greater than the number of pages of results, an empty page is returned.
     * @param {number} [pageSize] The number of results to return per response.
     * @param {string} [salesOrderId] Sales Order ID
     * @param {SortDir} [sortDir] Controls the sort order of the query.
     * @param {string} [shipmentNumber] The user or order source defined shipment number
     * @param {string} [shipToName] The name associated with the ship_to
     * @param {string} [itemKeyword] Returns shipments that contain items that match the specified keyword. Fields searched are Sku, Description, and Options.
     * @param {string} [paymentDateStart] Used to create a filter for resources based on the payment_date parameter after a certain time.
     * @param {string} [paymentDateEnd] Used to create a filter for resources based on the payment_date parameter before a certain time.
     * @param {string} [storeId] Store ID
     * @param {string} [externalShipmentId]
     * @param {ShipmentsSortBy} [sortBy]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listShipments(pickupId: string, shipmentStatus?: ShipmentStatus, batchId?: string, createdAtStart?: string, createdAtEnd?: string, modifiedAtStart?: string, modifiedAtEnd?: string, page?: number, pageSize?: number, salesOrderId?: string, sortDir?: SortDir, shipmentNumber?: string, shipToName?: string, itemKeyword?: string, paymentDateStart?: string, paymentDateEnd?: string, storeId?: string, externalShipmentId?: string, sortBy?: ShipmentsSortBy, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ListShipmentsResponseBody>>;
    /**
     * Add a tag to the shipment object
     * @summary Add tag to shipment
     * @param {string} shipmentId Shipment ID
     * @param {string} tagName
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    tagShipment(shipmentId: string, tagName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<TagShipmentResponseBody>>;
    /**
     * Remove an existing tag from the Shipment object
     * @summary Remove tag from shipment
     * @param {string} shipmentId Shipment ID
     * @param {string} tagName
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    untagShipment(shipmentId: string, tagName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<string>>;
};
/**
 * ShipmentsApi - factory interface
 * @export
 */
export declare const ShipmentsApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     * Mark a shipment cancelled, if it is no longer needed or being used by your organized. Any label associated with the shipment needs to be voided first An example use case would be if a batch label creation job is going to run at a set time and only queries `pending` shipments. Marking a shipment as cancelled would remove it from this process
     * @summary Cancel a shipment
     * @param {string} shipmentId Shipment ID
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    cancelShipments(shipmentId: string, options?: RawAxiosRequestConfig): AxiosPromise<string>;
    /**
     * Query Shipments created using your own custom ID convention using this endpoint
     * @summary Get shipment by external id
     * @param {string} externalShipmentId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getShipmentByExternalId(externalShipmentId: string, options?: RawAxiosRequestConfig): AxiosPromise<GetShipmentByExternalIdResponseBody>;
    /**
     * Get an individual shipment based on its ID
     * @summary Get shipment by id
     * @param {string} shipmentId Shipment ID
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getShipmentById(shipmentId: string, options?: RawAxiosRequestConfig): AxiosPromise<GetShipmentByIdResponseBody>;
    /**
     * Get Rates for the shipment information associated with the shipment ID
     * @summary Get shipment rates
     * @param {string} shipmentId Shipment ID
     * @param {string} [createdAtStart] Used to create a filter for when a resource was created (ex. A shipment that was created after a certain time)
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listShipmentRates(shipmentId: string, createdAtStart?: string, options?: RawAxiosRequestConfig): AxiosPromise<ListShipmentRatesResponseBody>;
    /**
     * Get list of Shipments
     * @summary List shipments
     * @param {string} pickupId
     * @param {ShipmentStatus} [shipmentStatus]
     * @param {string} [batchId] Batch ID
     * @param {string} [createdAtStart] Used to create a filter for when a resource was created (ex. A shipment that was created after a certain time)
     * @param {string} [createdAtEnd] Used to create a filter for when a resource was created, (ex. A shipment that was created before a certain time)
     * @param {string} [modifiedAtStart] Used to create a filter for when a resource was modified (ex. A shipment that was modified after a certain time)
     * @param {string} [modifiedAtEnd] Used to create a filter for when a resource was modified (ex. A shipment that was modified before a certain time)
     * @param {number} [page] Return a specific page of results. Defaults to the first page. If set to a number that\&#39;s greater than the number of pages of results, an empty page is returned.
     * @param {number} [pageSize] The number of results to return per response.
     * @param {string} [salesOrderId] Sales Order ID
     * @param {SortDir} [sortDir] Controls the sort order of the query.
     * @param {string} [shipmentNumber] The user or order source defined shipment number
     * @param {string} [shipToName] The name associated with the ship_to
     * @param {string} [itemKeyword] Returns shipments that contain items that match the specified keyword. Fields searched are Sku, Description, and Options.
     * @param {string} [paymentDateStart] Used to create a filter for resources based on the payment_date parameter after a certain time.
     * @param {string} [paymentDateEnd] Used to create a filter for resources based on the payment_date parameter before a certain time.
     * @param {string} [storeId] Store ID
     * @param {string} [externalShipmentId]
     * @param {ShipmentsSortBy} [sortBy]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listShipments(pickupId: string, shipmentStatus?: ShipmentStatus, batchId?: string, createdAtStart?: string, createdAtEnd?: string, modifiedAtStart?: string, modifiedAtEnd?: string, page?: number, pageSize?: number, salesOrderId?: string, sortDir?: SortDir, shipmentNumber?: string, shipToName?: string, itemKeyword?: string, paymentDateStart?: string, paymentDateEnd?: string, storeId?: string, externalShipmentId?: string, sortBy?: ShipmentsSortBy, options?: RawAxiosRequestConfig): AxiosPromise<ListShipmentsResponseBody>;
    /**
     * Add a tag to the shipment object
     * @summary Add tag to shipment
     * @param {string} shipmentId Shipment ID
     * @param {string} tagName
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    tagShipment(shipmentId: string, tagName: string, options?: RawAxiosRequestConfig): AxiosPromise<TagShipmentResponseBody>;
    /**
     * Remove an existing tag from the Shipment object
     * @summary Remove tag from shipment
     * @param {string} shipmentId Shipment ID
     * @param {string} tagName
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    untagShipment(shipmentId: string, tagName: string, options?: RawAxiosRequestConfig): AxiosPromise<string>;
};
/**
 * ShipmentsApi - object-oriented interface
 * @export
 * @class ShipmentsApi
 * @extends {BaseAPI}
 */
export declare class ShipmentsApi extends BaseAPI {
    /**
     * Mark a shipment cancelled, if it is no longer needed or being used by your organized. Any label associated with the shipment needs to be voided first An example use case would be if a batch label creation job is going to run at a set time and only queries `pending` shipments. Marking a shipment as cancelled would remove it from this process
     * @summary Cancel a shipment
     * @param {string} shipmentId Shipment ID
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ShipmentsApi
     */
    cancelShipments(shipmentId: string, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<string, any>>;
    /**
     * Query Shipments created using your own custom ID convention using this endpoint
     * @summary Get shipment by external id
     * @param {string} externalShipmentId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ShipmentsApi
     */
    getShipmentByExternalId(externalShipmentId: string, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<import("../models").PartialShipment, any>>;
    /**
     * Get an individual shipment based on its ID
     * @summary Get shipment by id
     * @param {string} shipmentId Shipment ID
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ShipmentsApi
     */
    getShipmentById(shipmentId: string, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<import("../models").PartialShipment, any>>;
    /**
     * Get Rates for the shipment information associated with the shipment ID
     * @summary Get shipment rates
     * @param {string} shipmentId Shipment ID
     * @param {string} [createdAtStart] Used to create a filter for when a resource was created (ex. A shipment that was created after a certain time)
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ShipmentsApi
     */
    listShipmentRates(shipmentId: string, createdAtStart?: string, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<import("../models").RatesInformation, any>>;
    /**
     * Get list of Shipments
     * @summary List shipments
     * @param {string} pickupId
     * @param {ShipmentStatus} [shipmentStatus]
     * @param {string} [batchId] Batch ID
     * @param {string} [createdAtStart] Used to create a filter for when a resource was created (ex. A shipment that was created after a certain time)
     * @param {string} [createdAtEnd] Used to create a filter for when a resource was created, (ex. A shipment that was created before a certain time)
     * @param {string} [modifiedAtStart] Used to create a filter for when a resource was modified (ex. A shipment that was modified after a certain time)
     * @param {string} [modifiedAtEnd] Used to create a filter for when a resource was modified (ex. A shipment that was modified before a certain time)
     * @param {number} [page] Return a specific page of results. Defaults to the first page. If set to a number that\&#39;s greater than the number of pages of results, an empty page is returned.
     * @param {number} [pageSize] The number of results to return per response.
     * @param {string} [salesOrderId] Sales Order ID
     * @param {SortDir} [sortDir] Controls the sort order of the query.
     * @param {string} [shipmentNumber] The user or order source defined shipment number
     * @param {string} [shipToName] The name associated with the ship_to
     * @param {string} [itemKeyword] Returns shipments that contain items that match the specified keyword. Fields searched are Sku, Description, and Options.
     * @param {string} [paymentDateStart] Used to create a filter for resources based on the payment_date parameter after a certain time.
     * @param {string} [paymentDateEnd] Used to create a filter for resources based on the payment_date parameter before a certain time.
     * @param {string} [storeId] Store ID
     * @param {string} [externalShipmentId]
     * @param {ShipmentsSortBy} [sortBy]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ShipmentsApi
     */
    listShipments(pickupId: string, shipmentStatus?: ShipmentStatus, batchId?: string, createdAtStart?: string, createdAtEnd?: string, modifiedAtStart?: string, modifiedAtEnd?: string, page?: number, pageSize?: number, salesOrderId?: string, sortDir?: SortDir, shipmentNumber?: string, shipToName?: string, itemKeyword?: string, paymentDateStart?: string, paymentDateEnd?: string, storeId?: string, externalShipmentId?: string, sortBy?: ShipmentsSortBy, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<ListShipmentsResponseBody, any>>;
    /**
     * Add a tag to the shipment object
     * @summary Add tag to shipment
     * @param {string} shipmentId Shipment ID
     * @param {string} tagName
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ShipmentsApi
     */
    tagShipment(shipmentId: string, tagName: string, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<TagShipmentResponseBody, any>>;
    /**
     * Remove an existing tag from the Shipment object
     * @summary Remove tag from shipment
     * @param {string} shipmentId Shipment ID
     * @param {string} tagName
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ShipmentsApi
     */
    untagShipment(shipmentId: string, tagName: string, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<string, any>>;
}
