import Restful from '../../index.js';
import { AddEvidencePaymentDisputeRequest, ContestPaymentDisputeRequest, IssueRefundRequest, PaymentParams, ShippingFulfillmentDetails, UpdateEvidencePaymentDisputeRequest } from '../../../../types/index.js';
/**
 * Use the Fulfillment API to complete the process of packaging, addressing, handling, and shipping each order on
 * behalf of the seller, in accordance with the payment method and timing specified at checkout.
 *
 * https://api.ebay.com/oauth/api_scope/sell.fulfillment
 * https://api.ebay.com/oauth/api_scope/sell.fulfillment.readonly
 *
 */
export default class Fulfillment extends Restful {
    static id: string;
    get basePath(): string;
    /**
     * Use this call to retrieve the contents of an order based on its unique identifier, orderId.
     *
     * @param orderId The unique identifier of the order.
     * @param fieldGroups The response type associated with the order. The only presently supported value is <code>TAX_BREAKDOWN</code>.
     */
    getOrder(orderId: string, { fieldGroups }?: {
        fieldGroups?: string[];
    }): Promise<any>;
    /**
     * Use this call to search for and retrieve one or more orders based on their creation date, last modification
     * date,
     * or fulfillment status using the filter parameter.
     *
     * @param filter One or more comma-separated criteria for narrowing down the collection of orders returned by this
     *     call.
     * @param limit The number of orders to return per page of the result set.
     * @param offset Specifies the number of orders to skip in the result set before returning the first order in the
     *     paginated response.
     * @param orderIds A comma-separated list of the unique identifiers of the orders to retrieve (maximum 50).
     */
    getOrders({ filter, limit, offset, orderIds, fieldGroups, }?: {
        filter?: string;
        limit?: number;
        offset?: number;
        orderIds?: string | string[];
        fieldGroups?: string[];
    }): Promise<any>;
    /**
     * This method allows a seller (opted in to eBay Managed Payments) to issue a full or partial refund to a buyer for
     * an order. auth: https://api.ebay.com/oauth/api_scope/sell.finances
     *
     * @param orderId The unique identifier of the order. Order IDs are returned in the getOrders method (and GetOrders
     *     call of Trading API).
     * @param body IssueRefundRequest
     */
    issueRefund(orderId: string, body?: IssueRefundRequest): Promise<any>;
    /**
     * Use this call to retrieve the contents of all fulfillments currently defined for a specified order based on the
     * order's unique identifier, orderId.
     *
     * @param orderId The unique identifier of the order.
     */
    getShippingFulfillments(orderId: string): Promise<any>;
    /**
     * Create a Shipping Fulfillment
     *
     * @param orderId The unique identifier of the order.
     * @param body fulfillment payload
     */
    createShippingFulfillment(orderId: string, body: ShippingFulfillmentDetails): Promise<any>;
    /**
     * Use this call to retrieve the contents of a fulfillment based on its unique identifier, fulfillmentId (combined
     * with the associated order's orderId).
     *
     * @param orderId The unique identifier of the order.
     * @param fulfillmentId The unique identifier of the fulfillment.
     */
    getShippingFulfillment(orderId: string, fulfillmentId: string): Promise<any>;
    /**
     * This method retrieves detailed information on a specific payment dispute.
     *
     * @param paymentDisputeId This is the unique identifier of the payment dispute.
     */
    getPaymentDispute(paymentDisputeId: string): Promise<any>;
    /**
     * This call retrieves a specific evidence file for a payment dispute.
     *
     * @param paymentDisputeId This is the unique identifier of the payment dispute.
     */
    fetchEvidenceContent(paymentDisputeId: string): Promise<any>;
    /**
     * This method retrieve a log of activity for a payment dispute.
     *
     * @param paymentDisputeId This is the unique identifier of the payment dispute.
     */
    getActivities(paymentDisputeId: string): Promise<any>;
    /**
     * This method is used retrieve one or more payment disputes filed against the seller.
     *
     * @param orderId This filter is used if the seller wishes to retrieve one or more payment disputes filed against a specific order.
     * @param buyerUsername This filter is used if the seller wishes to retrieve one or more payment disputes opened by a specific seller.
     * @param openDateFrom The <b>open_date_from</b> and/or <b>open_date_to</b> date filters are used if the seller wishes to retrieve payment disputes opened within a specific date range.
     * @param paymentDisputeStatus The <b>open_date_from</b> and/or <b>open_date_to</b> date filters are used if the seller wishes to retrieve payment disputes opened within a specific date range.
     * @param paymentDisputeStatus his filter is used if the seller wishes to only retrieve payment disputes in a specific state.
     * @param limit The value passed in this query parameter sets the maximum number of payment disputes to return per page of data.
     * @param offset This field is used to specify the number of records to skip in the result set before returning the first payment dispute in the paginated response.
     */
    getPaymentDisputeSummaries({ orderId: order_id, buyerUsername: buyer_username, openDateFrom: open_date_from, openDateTo: open_date_to, paymentDisputeStatus: payment_dispute_status, limit, offset }: PaymentParams): Promise<any>;
    /**
     * This method is used if the seller wishes to contest a payment dispute initiated by the buyer.
     *
     * @param paymentDisputeId This is the unique identifier of the payment dispute.
     * @param body This is the unique identifier of the payment dispute.
     */
    contestPaymentDispute(paymentDisputeId: string, body: ContestPaymentDisputeRequest): Promise<any>;
    /**
     * This method is used if the seller wishes to accept a payment dispute.
     *
     *  @param paymentDisputeId This is the unique identifier of the payment dispute.
     */
    acceptPaymentDispute(paymentDisputeId: string): Promise<any>;
    /**
     * This method is used to upload an evidence file for a contested payment dispute.
     *
     * @param paymentDisputeId This is the unique identifier of the payment dispute.
     * @param data uploads an encrypted, binary image file (using multipart/form-data HTTP request header)
     */
    uploadEvidenceFile(paymentDisputeId: string, data: any): Promise<any>;
    /**
     * This method is used by the seller to add one or more evidence files to address a payment dispute initiated by the buyer.
     *
     * @param paymentDisputeId This is the unique identifier of the payment dispute.
     * @param body AddEvidencePaymentDisputeRequest
     */
    addEvidence(paymentDisputeId: string, body: AddEvidencePaymentDisputeRequest): Promise<any>;
    /**
     * This method is used by the seller to update an existing evidence set for a payment dispute with one or more evidence files.
     *
     * @param paymentDisputeId This is the unique identifier of the payment dispute.
     * @param body AddEvidencePaymentDisputeRequest
     */
    updateEvidence(paymentDisputeId: string, body: UpdateEvidencePaymentDisputeRequest): Promise<any>;
}
