import * as Options from '../options';
import { Fulfillment } from '../interfaces';
import { BaseService } from '../infrastructure';
/**
 * A service for manipulating an order's fulfillments.
 */
export declare class Fulfillments extends BaseService {
    constructor(shopDomain: string, accessToken: string);
    private getPath;
    /**
     * Creates a new fulfillment.
     * @param orderId Id of the order that the fulfillment will belong to.
     * @param fulfillment The fulfillment being created.
     */
    create(orderId: number, fulfillment: Partial<Fulfillment>): Promise<Fulfillment>;
    /**
     * Updates an fulfillment with the given id.
     * @param orderId Id of the order that the fulfillment belongs to.
     * @param fulfillmentId Id of the fulfillment to update.
     * @param fulfillment The updated fulfillment.
     */
    update(orderId: number, fulfillmentId: number, fulfillment: Partial<Fulfillment>): Promise<Fulfillment>;
    /**
     * Gets an fulfillment with the given id.
     * @param orderId Id of the order that the fulfillment belongs to.
     * @param fulfillmentId Id of the fulfillment being retrieved.
     * @param options Options for filtering the result.
     */
    get(orderId: number, fulfillmentId: number, options?: Options.FieldOptions): Promise<Fulfillment>;
    /**
     * Lists up to 250 fulfillments for the given order.
     * @param orderId Id of the order that the fulfillments belong to.
     * @param options Options for filtering the results.
     */
    list(orderId: number, options?: Options.FieldOptions & Options.DateOptions & Options.ListOptions): Promise<Fulfillment[]>;
    /**
     * Counts the fulfillments on the given order.
     * @param orderId Id of the order that the fulfillments belong to.
     * @param options Options for filtering the results.
     */
    count(orderId: number, options?: Options.DateOptions): Promise<number>;
    /**
     * Opens a fulfillment with the given fulfillmentId.
     * @param orderId Id of the order that the fulfillments belong to.
     * @param fulfillmentId The fulfillment's id.
     */
    open(orderId: number, fulfillmentId: number): Promise<Fulfillment>;
    /**
     * Cancels a fulfillment with the given fulfillmentId.
     * @param fulfillmentId The fulfillment's id.
     * @param options Options for canceling the fulfillment.
     */
    cancel(orderId: number, fulfillmentId: number): Promise<Fulfillment>;
    /**
     * Complete a fulfillment with the given id.
     * @param fulfillmentId The fulfillment's id.
     * @param options Options for canceling the fulfillment.
     */
    complete(orderId: number, fulfillmentId: number): Promise<Fulfillment>;
}
export default Fulfillments;
