/**
 * AdvancedBilling
 *
 * This file was automatically generated for Maxio by APIMATIC v3.0 ( https://www.apimatic.io ).
 */
import { ApiResponse, RequestOptions } from '../core';
import { BatchJobResponse } from '../models/batchJobResponse';
import { Invoice } from '../models/invoice';
import { ProformaInvoice } from '../models/proformaInvoice';
import { Subscription } from '../models/subscription';
import { BaseController } from './baseController';
export declare class APIExportsController extends BaseController {
    /**
     * This API returns an array of exported proforma invoices for a provided `batch_id`. Pay close
     * attention to pagination in order to control responses from the server.
     *
     * Example: `GET https://{subdomain}.chargify.com/api_exports/proforma_invoices/123/rows?
     * per_page=10000&page=1`.
     *
     * @param batchId  Id of a Batch Job.
     * @param perPage  This parameter indicates how many records to fetch in each request.  Default value is
     *                           100.  The maximum allowed values is 10000; any per_page value over 10000 will be changed
     *                           to 10000.
     * @param page     Result records are organized in pages. By default, the first page of results is
     *                           displayed. The page parameter specifies a page number of results to fetch. You can start
     *                           navigating through the pages to consume the results. You do this by passing in a page
     *                           parameter. Retrieve the next page by adding ?page=2 to the query string. If there are no
     *                           results to return, then an empty result set will be returned. Use in query `page=1`.
     * @return Response from the API call
     */
    listExportedProformaInvoices({ batchId, perPage, page, }: {
        batchId: string;
        perPage?: number;
        page?: number;
    }, requestOptions?: RequestOptions): Promise<ApiResponse<ProformaInvoice[]>>;
    /**
     * This API returns an array of exported invoices for a provided `batch_id`. Pay close attention to
     * pagination in order to control responses from the server.
     *
     * Example: `GET https://{subdomain}.chargify.com/api_exports/invoices/123/rows?per_page=10000&page=1`.
     *
     * @param batchId  Id of a Batch Job.
     * @param perPage  This parameter indicates how many records to fetch in each request.  Default value is
     *                           100.  The maximum allowed values is 10000; any per_page value over 10000 will be changed
     *                           to 10000.
     * @param page     Result records are organized in pages. By default, the first page of results is
     *                           displayed. The page parameter specifies a page number of results to fetch. You can start
     *                           navigating through the pages to consume the results. You do this by passing in a page
     *                           parameter. Retrieve the next page by adding ?page=2 to the query string. If there are no
     *                           results to return, then an empty result set will be returned. Use in query `page=1`.
     * @return Response from the API call
     */
    listExportedInvoices({ batchId, perPage, page, }: {
        batchId: string;
        perPage?: number;
        page?: number;
    }, requestOptions?: RequestOptions): Promise<ApiResponse<Invoice[]>>;
    /**
     * This API returns an array of exported subscriptions for a provided `batch_id`. Pay close attention
     * to pagination in order to control responses from the server.
     *
     * Example: `GET https://{subdomain}.chargify.com/api_exports/subscriptions/123/rows?
     * per_page=200&page=1`.
     *
     * @param batchId  Id of a Batch Job.
     * @param perPage  This parameter indicates how many records to fetch in each request.  Default value is
     *                           100.  The maximum allowed values is 10000; any per_page value over 10000 will be changed
     *                           to 10000.
     * @param page     Result records are organized in pages. By default, the first page of results is
     *                           displayed. The page parameter specifies a page number of results to fetch. You can start
     *                           navigating through the pages to consume the results. You do this by passing in a page
     *                           parameter. Retrieve the next page by adding ?page=2 to the query string. If there are no
     *                           results to return, then an empty result set will be returned. Use in query `page=1`.
     * @return Response from the API call
     */
    listExportedSubscriptions({ batchId, perPage, page, }: {
        batchId: string;
        perPage?: number;
        page?: number;
    }, requestOptions?: RequestOptions): Promise<ApiResponse<Subscription[]>>;
    /**
     * This API creates a proforma invoices export and returns a batchjob object.
     *
     * It is only available for Relationship Invoicing architecture.
     *
     * @return Response from the API call
     */
    exportProformaInvoices(requestOptions?: RequestOptions): Promise<ApiResponse<BatchJobResponse>>;
    /**
     * This API creates an invoices export and returns a batchjob object.
     *
     * @return Response from the API call
     */
    exportInvoices(requestOptions?: RequestOptions): Promise<ApiResponse<BatchJobResponse>>;
    /**
     * This API creates a subscriptions export and returns a batchjob object.
     *
     * @return Response from the API call
     */
    exportSubscriptions(requestOptions?: RequestOptions): Promise<ApiResponse<BatchJobResponse>>;
    /**
     * This API returns a batchjob object for proforma invoices export.
     *
     * @param batchId  Id of a Batch Job.
     * @return Response from the API call
     */
    readProformaInvoicesExport(batchId: string, requestOptions?: RequestOptions): Promise<ApiResponse<BatchJobResponse>>;
    /**
     * This API returns a batchjob object for invoices export.
     *
     * @param batchId  Id of a Batch Job.
     * @return Response from the API call
     */
    readInvoicesExport(batchId: string, requestOptions?: RequestOptions): Promise<ApiResponse<BatchJobResponse>>;
    /**
     * This API returns a batchjob object for subscriptions export.
     *
     * @param batchId  Id of a Batch Job.
     * @return Response from the API call
     */
    readSubscriptionsExport(batchId: string, requestOptions?: RequestOptions): Promise<ApiResponse<BatchJobResponse>>;
}
