/**
 * CyberSource Merged Spec
 * All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html
 *
 * OpenAPI spec version: 0.0.1
 *
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 */
import { AxiosResponse, AxiosInstance, AxiosRequestConfig } from 'axios';
import { Configuration } from '../configuration';
import { RequestArgs, BaseAPI } from '../base';
import { InvoicesIdBody } from '../models';
import { InvoicingV2InvoicesAllGet200Response } from '../models';
import { InvoicingV2InvoicesCancel200Response } from '../models';
import { InvoicingV2InvoicesGet200Response } from '../models';
import { InvoicingV2InvoicesPost201Response } from '../models';
import { InvoicingV2InvoicesPut200Response } from '../models';
import { InvoicingV2InvoicesSend200Response } from '../models';
import { V2InvoicesBody } from '../models';
/**
 * InvoicesApi - axios parameter creator
 * @export
 */
export declare const InvoicesApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * The invoicing product enables you to bill any customer with an email address and accept digital payments securely from any connected device. You can either use the system generated email or use the invoice payment link in your own communication. You can add discounts and taxes for the entire invoice or for each line item. To customize the invoice to match your brand see [Invoice Settings](https://developer.cybersource.com/api-reference-assets/index.html#invoicing_invoice-settings_update-invoice-settings). The invoice payment page uses Unified Checkout to process the payments.
     * @summary Create a New Invoice
     * @param {V2InvoicesBody} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createInvoice: (body: V2InvoicesBody, options?: AxiosRequestConfig & Configuration) => Promise<RequestArgs>;
    /**
     * Provides a (filtered) list of invoices that have been created in your account. You can filter the list based on Invoice Status by setting the status query parameter to one of DRAFT, CREATED, SENT, PARTIAL, PAID or CANCELED.
     * @summary Get a List of Invoices
     * @param {number} offset Page offset number.
     * @param {number} limit Maximum number of items you would like returned.
     * @param {string} [status] The status of the invoice.  Possible values:   - DRAFT   - CREATED   - SENT   - PARTIAL   - PAID   - CANCELED
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getAllInvoices: (offset: number, limit: number, status?: string, options?: AxiosRequestConfig & Configuration) => Promise<RequestArgs>;
    /**
     * You can retrieve details of a specific invoice. This can be used to check the Invoice status and get a list of invoice payments in the invoice history section of the response. For each payment transaction you can use the Transaction Details API to get more details on the payment transaction.
     * @summary Get Invoice Details
     * @param {string} id The invoice number.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getInvoice: (id: string, options?: AxiosRequestConfig & Configuration) => Promise<RequestArgs>;
    /**
     * You can cancel an invoice if no payment is made to it. You cannot cancel partially or fully paid invoices.
     * @summary Cancel an Invoice
     * @param {string} id The invoice number.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    performCancelAction: (id: string, options?: AxiosRequestConfig & Configuration) => Promise<RequestArgs>;
    /**
     * You can send an invoice in draft or created state or resend a sent or partially paid invoice. Fully paid or canceled invoices cannot be resent.
     * @summary Send an Invoice
     * @param {string} id The invoice number.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    performSendAction: (id: string, options?: AxiosRequestConfig & Configuration) => Promise<RequestArgs>;
    /**
     * You can update all information except the invoice number till any payment is received for an invoice. Invoices that are partially or fully paid or cancelled cannot be updated.
     * @summary Update an Invoice
     * @param {InvoicesIdBody} body Updating the invoice does not resend the invoice automatically. You must resend the invoice separately.
     * @param {string} id The invoice number.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateInvoice: (body: InvoicesIdBody, id: string, options?: AxiosRequestConfig & Configuration) => Promise<RequestArgs>;
};
/**
 * InvoicesApi - functional programming interface
 * @export
 */
export declare const InvoicesApiFp: (configuration?: Configuration) => {
    /**
     * The invoicing product enables you to bill any customer with an email address and accept digital payments securely from any connected device. You can either use the system generated email or use the invoice payment link in your own communication. You can add discounts and taxes for the entire invoice or for each line item. To customize the invoice to match your brand see [Invoice Settings](https://developer.cybersource.com/api-reference-assets/index.html#invoicing_invoice-settings_update-invoice-settings). The invoice payment page uses Unified Checkout to process the payments.
     * @summary Create a New Invoice
     * @param {V2InvoicesBody} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createInvoice(body: V2InvoicesBody, options?: AxiosRequestConfig & Configuration): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<InvoicingV2InvoicesPost201Response>>>;
    /**
     * Provides a (filtered) list of invoices that have been created in your account. You can filter the list based on Invoice Status by setting the status query parameter to one of DRAFT, CREATED, SENT, PARTIAL, PAID or CANCELED.
     * @summary Get a List of Invoices
     * @param {number} offset Page offset number.
     * @param {number} limit Maximum number of items you would like returned.
     * @param {string} [status] The status of the invoice.  Possible values:   - DRAFT   - CREATED   - SENT   - PARTIAL   - PAID   - CANCELED
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getAllInvoices(offset: number, limit: number, status?: string, options?: AxiosRequestConfig & Configuration): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<InvoicingV2InvoicesAllGet200Response>>>;
    /**
     * You can retrieve details of a specific invoice. This can be used to check the Invoice status and get a list of invoice payments in the invoice history section of the response. For each payment transaction you can use the Transaction Details API to get more details on the payment transaction.
     * @summary Get Invoice Details
     * @param {string} id The invoice number.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getInvoice(id: string, options?: AxiosRequestConfig & Configuration): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<InvoicingV2InvoicesGet200Response>>>;
    /**
     * You can cancel an invoice if no payment is made to it. You cannot cancel partially or fully paid invoices.
     * @summary Cancel an Invoice
     * @param {string} id The invoice number.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    performCancelAction(id: string, options?: AxiosRequestConfig & Configuration): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<InvoicingV2InvoicesCancel200Response>>>;
    /**
     * You can send an invoice in draft or created state or resend a sent or partially paid invoice. Fully paid or canceled invoices cannot be resent.
     * @summary Send an Invoice
     * @param {string} id The invoice number.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    performSendAction(id: string, options?: AxiosRequestConfig & Configuration): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<InvoicingV2InvoicesSend200Response>>>;
    /**
     * You can update all information except the invoice number till any payment is received for an invoice. Invoices that are partially or fully paid or cancelled cannot be updated.
     * @summary Update an Invoice
     * @param {InvoicesIdBody} body Updating the invoice does not resend the invoice automatically. You must resend the invoice separately.
     * @param {string} id The invoice number.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateInvoice(body: InvoicesIdBody, id: string, options?: AxiosRequestConfig & Configuration): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<InvoicingV2InvoicesPut200Response>>>;
};
/**
 * InvoicesApi - factory interface
 * @export
 */
export declare const InvoicesApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     * The invoicing product enables you to bill any customer with an email address and accept digital payments securely from any connected device. You can either use the system generated email or use the invoice payment link in your own communication. You can add discounts and taxes for the entire invoice or for each line item. To customize the invoice to match your brand see [Invoice Settings](https://developer.cybersource.com/api-reference-assets/index.html#invoicing_invoice-settings_update-invoice-settings). The invoice payment page uses Unified Checkout to process the payments.
     * @summary Create a New Invoice
     * @param {V2InvoicesBody} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createInvoice(body: V2InvoicesBody, options?: AxiosRequestConfig & Configuration): Promise<AxiosResponse<InvoicingV2InvoicesPost201Response>>;
    /**
     * Provides a (filtered) list of invoices that have been created in your account. You can filter the list based on Invoice Status by setting the status query parameter to one of DRAFT, CREATED, SENT, PARTIAL, PAID or CANCELED.
     * @summary Get a List of Invoices
     * @param {number} offset Page offset number.
     * @param {number} limit Maximum number of items you would like returned.
     * @param {string} [status] The status of the invoice.  Possible values:   - DRAFT   - CREATED   - SENT   - PARTIAL   - PAID   - CANCELED
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getAllInvoices(offset: number, limit: number, status?: string, options?: AxiosRequestConfig & Configuration): Promise<AxiosResponse<InvoicingV2InvoicesAllGet200Response>>;
    /**
     * You can retrieve details of a specific invoice. This can be used to check the Invoice status and get a list of invoice payments in the invoice history section of the response. For each payment transaction you can use the Transaction Details API to get more details on the payment transaction.
     * @summary Get Invoice Details
     * @param {string} id The invoice number.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getInvoice(id: string, options?: AxiosRequestConfig & Configuration): Promise<AxiosResponse<InvoicingV2InvoicesGet200Response>>;
    /**
     * You can cancel an invoice if no payment is made to it. You cannot cancel partially or fully paid invoices.
     * @summary Cancel an Invoice
     * @param {string} id The invoice number.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    performCancelAction(id: string, options?: AxiosRequestConfig & Configuration): Promise<AxiosResponse<InvoicingV2InvoicesCancel200Response>>;
    /**
     * You can send an invoice in draft or created state or resend a sent or partially paid invoice. Fully paid or canceled invoices cannot be resent.
     * @summary Send an Invoice
     * @param {string} id The invoice number.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    performSendAction(id: string, options?: AxiosRequestConfig & Configuration): Promise<AxiosResponse<InvoicingV2InvoicesSend200Response>>;
    /**
     * You can update all information except the invoice number till any payment is received for an invoice. Invoices that are partially or fully paid or cancelled cannot be updated.
     * @summary Update an Invoice
     * @param {InvoicesIdBody} body Updating the invoice does not resend the invoice automatically. You must resend the invoice separately.
     * @param {string} id The invoice number.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateInvoice(body: InvoicesIdBody, id: string, options?: AxiosRequestConfig & Configuration): Promise<AxiosResponse<InvoicingV2InvoicesPut200Response>>;
};
/**
 * InvoicesApi - object-oriented interface
 * @export
 * @class InvoicesApi
 * @extends {BaseAPI}
 */
export declare class InvoicesApi extends BaseAPI {
    /**
     * The invoicing product enables you to bill any customer with an email address and accept digital payments securely from any connected device. You can either use the system generated email or use the invoice payment link in your own communication. You can add discounts and taxes for the entire invoice or for each line item. To customize the invoice to match your brand see [Invoice Settings](https://developer.cybersource.com/api-reference-assets/index.html#invoicing_invoice-settings_update-invoice-settings). The invoice payment page uses Unified Checkout to process the payments.
     * @summary Create a New Invoice
     * @param {V2InvoicesBody} body
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof InvoicesApi
     */
    createInvoice(body: V2InvoicesBody, options?: AxiosRequestConfig & Configuration): Promise<AxiosResponse<InvoicingV2InvoicesPost201Response>>;
    /**
     * Provides a (filtered) list of invoices that have been created in your account. You can filter the list based on Invoice Status by setting the status query parameter to one of DRAFT, CREATED, SENT, PARTIAL, PAID or CANCELED.
     * @summary Get a List of Invoices
     * @param {number} offset Page offset number.
     * @param {number} limit Maximum number of items you would like returned.
     * @param {string} [status] The status of the invoice.  Possible values:   - DRAFT   - CREATED   - SENT   - PARTIAL   - PAID   - CANCELED
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof InvoicesApi
     */
    getAllInvoices(offset: number, limit: number, status?: string, options?: AxiosRequestConfig & Configuration): Promise<AxiosResponse<InvoicingV2InvoicesAllGet200Response>>;
    /**
     * You can retrieve details of a specific invoice. This can be used to check the Invoice status and get a list of invoice payments in the invoice history section of the response. For each payment transaction you can use the Transaction Details API to get more details on the payment transaction.
     * @summary Get Invoice Details
     * @param {string} id The invoice number.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof InvoicesApi
     */
    getInvoice(id: string, options?: AxiosRequestConfig & Configuration): Promise<AxiosResponse<InvoicingV2InvoicesGet200Response>>;
    /**
     * You can cancel an invoice if no payment is made to it. You cannot cancel partially or fully paid invoices.
     * @summary Cancel an Invoice
     * @param {string} id The invoice number.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof InvoicesApi
     */
    performCancelAction(id: string, options?: AxiosRequestConfig & Configuration): Promise<AxiosResponse<InvoicingV2InvoicesCancel200Response>>;
    /**
     * You can send an invoice in draft or created state or resend a sent or partially paid invoice. Fully paid or canceled invoices cannot be resent.
     * @summary Send an Invoice
     * @param {string} id The invoice number.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof InvoicesApi
     */
    performSendAction(id: string, options?: AxiosRequestConfig & Configuration): Promise<AxiosResponse<InvoicingV2InvoicesSend200Response>>;
    /**
     * You can update all information except the invoice number till any payment is received for an invoice. Invoices that are partially or fully paid or cancelled cannot be updated.
     * @summary Update an Invoice
     * @param {InvoicesIdBody} body Updating the invoice does not resend the invoice automatically. You must resend the invoice separately.
     * @param {string} id The invoice number.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof InvoicesApi
     */
    updateInvoice(body: InvoicesIdBody, id: string, options?: AxiosRequestConfig & Configuration): Promise<AxiosResponse<InvoicingV2InvoicesPut200Response>>;
}
