/**
 * 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 { ReportingV3ReportsGet200Response } from '../models';
import { ReportingV3ReportsIdGet200Response } from '../models';
import { V3ReportsBody } from '../models';
/**
 * ReportsApi - axios parameter creator
 * @export
 */
export declare const ReportsApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * Create a one-time report. You must specify the type of report in reportDefinitionName. For a list of values for reportDefinitionName, see the [Reporting Developer Guide](https://www.cybersource.com/developers/documentation/reporting_and_reconciliation)
     * @summary Create Adhoc Report
     * @param {V3ReportsBody} body Report subscription request payload
     * @param {string} [organizationId] Valid Organization Id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createReport: (body: V3ReportsBody, organizationId?: string, options?: AxiosRequestConfig & Configuration) => Promise<RequestArgs>;
    /**
     * Download a report using the reportId value. If you don't already know this value, you can obtain it using the Retrieve available reports call.
     * @summary Get Report Based on Report Id
     * @param {string} reportId Valid Report Id
     * @param {string} [organizationId] Valid Organization Id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getReportByReportId: (reportId: string, organizationId?: string, options?: AxiosRequestConfig & Configuration) => Promise<RequestArgs>;
    /**
     * Retrieve a list of the available reports to which you are subscribed. This will also give you the reportId value, which you can also use to download a report.
     * @summary Retrieve Available Reports
     * @param {Date} startTime Valid report Start Time in **ISO 8601 format** Please refer the following link to know more about ISO 8601 format.[Rfc Date Format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)  **Example date format:**   - yyyy-MM-dd&#x27;T&#x27;HH:mm:ss.SSSZ (e.g. 2018-01-01T00:00:00.000Z)
     * @param {Date} endTime Valid report End Time in **ISO 8601 format** Please refer the following link to know more about ISO 8601 format.[Rfc Date Format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)  **Example date format:**   - yyyy-MM-dd&#x27;T&#x27;HH:mm:ss.SSSZ (e.g. 2018-01-01T00:00:00.000Z)
     * @param {string} timeQueryType Specify time you would like to search  Valid values: - reportTimeFrame - executedTime
     * @param {string} [organizationId] Valid Organization Id
     * @param {string} [reportMimeType] Valid Report Format  Valid values: - application/xml - text/csv
     * @param {string} [reportFrequency] Valid Report Frequency  Valid values: - DAILY - WEEKLY - MONTHLY - USER_DEFINED - ADHOC
     * @param {string} [reportName] Valid Report Name
     * @param {number} [reportDefinitionId] Valid Report Definition Id
     * @param {string} [reportStatus] Valid Report Status  Valid values: - COMPLETED - PENDING - QUEUED - RUNNING - ERROR - NO_DATA
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    searchReports: (startTime: Date, endTime: Date, timeQueryType: string, organizationId?: string, reportMimeType?: string, reportFrequency?: string, reportName?: string, reportDefinitionId?: number, reportStatus?: string, options?: AxiosRequestConfig & Configuration) => Promise<RequestArgs>;
};
/**
 * ReportsApi - functional programming interface
 * @export
 */
export declare const ReportsApiFp: (configuration?: Configuration) => {
    /**
     * Create a one-time report. You must specify the type of report in reportDefinitionName. For a list of values for reportDefinitionName, see the [Reporting Developer Guide](https://www.cybersource.com/developers/documentation/reporting_and_reconciliation)
     * @summary Create Adhoc Report
     * @param {V3ReportsBody} body Report subscription request payload
     * @param {string} [organizationId] Valid Organization Id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createReport(body: V3ReportsBody, organizationId?: string, options?: AxiosRequestConfig & Configuration): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<void>>>;
    /**
     * Download a report using the reportId value. If you don't already know this value, you can obtain it using the Retrieve available reports call.
     * @summary Get Report Based on Report Id
     * @param {string} reportId Valid Report Id
     * @param {string} [organizationId] Valid Organization Id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getReportByReportId(reportId: string, organizationId?: string, options?: AxiosRequestConfig & Configuration): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<ReportingV3ReportsIdGet200Response>>>;
    /**
     * Retrieve a list of the available reports to which you are subscribed. This will also give you the reportId value, which you can also use to download a report.
     * @summary Retrieve Available Reports
     * @param {Date} startTime Valid report Start Time in **ISO 8601 format** Please refer the following link to know more about ISO 8601 format.[Rfc Date Format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)  **Example date format:**   - yyyy-MM-dd&#x27;T&#x27;HH:mm:ss.SSSZ (e.g. 2018-01-01T00:00:00.000Z)
     * @param {Date} endTime Valid report End Time in **ISO 8601 format** Please refer the following link to know more about ISO 8601 format.[Rfc Date Format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)  **Example date format:**   - yyyy-MM-dd&#x27;T&#x27;HH:mm:ss.SSSZ (e.g. 2018-01-01T00:00:00.000Z)
     * @param {string} timeQueryType Specify time you would like to search  Valid values: - reportTimeFrame - executedTime
     * @param {string} [organizationId] Valid Organization Id
     * @param {string} [reportMimeType] Valid Report Format  Valid values: - application/xml - text/csv
     * @param {string} [reportFrequency] Valid Report Frequency  Valid values: - DAILY - WEEKLY - MONTHLY - USER_DEFINED - ADHOC
     * @param {string} [reportName] Valid Report Name
     * @param {number} [reportDefinitionId] Valid Report Definition Id
     * @param {string} [reportStatus] Valid Report Status  Valid values: - COMPLETED - PENDING - QUEUED - RUNNING - ERROR - NO_DATA
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    searchReports(startTime: Date, endTime: Date, timeQueryType: string, organizationId?: string, reportMimeType?: string, reportFrequency?: string, reportName?: string, reportDefinitionId?: number, reportStatus?: string, options?: AxiosRequestConfig & Configuration): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<ReportingV3ReportsGet200Response>>>;
};
/**
 * ReportsApi - factory interface
 * @export
 */
export declare const ReportsApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     * Create a one-time report. You must specify the type of report in reportDefinitionName. For a list of values for reportDefinitionName, see the [Reporting Developer Guide](https://www.cybersource.com/developers/documentation/reporting_and_reconciliation)
     * @summary Create Adhoc Report
     * @param {V3ReportsBody} body Report subscription request payload
     * @param {string} [organizationId] Valid Organization Id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createReport(body: V3ReportsBody, organizationId?: string, options?: AxiosRequestConfig & Configuration): Promise<AxiosResponse<void>>;
    /**
     * Download a report using the reportId value. If you don't already know this value, you can obtain it using the Retrieve available reports call.
     * @summary Get Report Based on Report Id
     * @param {string} reportId Valid Report Id
     * @param {string} [organizationId] Valid Organization Id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getReportByReportId(reportId: string, organizationId?: string, options?: AxiosRequestConfig & Configuration): Promise<AxiosResponse<ReportingV3ReportsIdGet200Response>>;
    /**
     * Retrieve a list of the available reports to which you are subscribed. This will also give you the reportId value, which you can also use to download a report.
     * @summary Retrieve Available Reports
     * @param {Date} startTime Valid report Start Time in **ISO 8601 format** Please refer the following link to know more about ISO 8601 format.[Rfc Date Format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)  **Example date format:**   - yyyy-MM-dd&#x27;T&#x27;HH:mm:ss.SSSZ (e.g. 2018-01-01T00:00:00.000Z)
     * @param {Date} endTime Valid report End Time in **ISO 8601 format** Please refer the following link to know more about ISO 8601 format.[Rfc Date Format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)  **Example date format:**   - yyyy-MM-dd&#x27;T&#x27;HH:mm:ss.SSSZ (e.g. 2018-01-01T00:00:00.000Z)
     * @param {string} timeQueryType Specify time you would like to search  Valid values: - reportTimeFrame - executedTime
     * @param {string} [organizationId] Valid Organization Id
     * @param {string} [reportMimeType] Valid Report Format  Valid values: - application/xml - text/csv
     * @param {string} [reportFrequency] Valid Report Frequency  Valid values: - DAILY - WEEKLY - MONTHLY - USER_DEFINED - ADHOC
     * @param {string} [reportName] Valid Report Name
     * @param {number} [reportDefinitionId] Valid Report Definition Id
     * @param {string} [reportStatus] Valid Report Status  Valid values: - COMPLETED - PENDING - QUEUED - RUNNING - ERROR - NO_DATA
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    searchReports(startTime: Date, endTime: Date, timeQueryType: string, organizationId?: string, reportMimeType?: string, reportFrequency?: string, reportName?: string, reportDefinitionId?: number, reportStatus?: string, options?: AxiosRequestConfig & Configuration): Promise<AxiosResponse<ReportingV3ReportsGet200Response>>;
};
/**
 * ReportsApi - object-oriented interface
 * @export
 * @class ReportsApi
 * @extends {BaseAPI}
 */
export declare class ReportsApi extends BaseAPI {
    /**
     * Create a one-time report. You must specify the type of report in reportDefinitionName. For a list of values for reportDefinitionName, see the [Reporting Developer Guide](https://www.cybersource.com/developers/documentation/reporting_and_reconciliation)
     * @summary Create Adhoc Report
     * @param {V3ReportsBody} body Report subscription request payload
     * @param {string} [organizationId] Valid Organization Id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ReportsApi
     */
    createReport(body: V3ReportsBody, organizationId?: string, options?: AxiosRequestConfig & Configuration): Promise<AxiosResponse<void>>;
    /**
     * Download a report using the reportId value. If you don't already know this value, you can obtain it using the Retrieve available reports call.
     * @summary Get Report Based on Report Id
     * @param {string} reportId Valid Report Id
     * @param {string} [organizationId] Valid Organization Id
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ReportsApi
     */
    getReportByReportId(reportId: string, organizationId?: string, options?: AxiosRequestConfig & Configuration): Promise<AxiosResponse<ReportingV3ReportsIdGet200Response>>;
    /**
     * Retrieve a list of the available reports to which you are subscribed. This will also give you the reportId value, which you can also use to download a report.
     * @summary Retrieve Available Reports
     * @param {Date} startTime Valid report Start Time in **ISO 8601 format** Please refer the following link to know more about ISO 8601 format.[Rfc Date Format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)  **Example date format:**   - yyyy-MM-dd&#x27;T&#x27;HH:mm:ss.SSSZ (e.g. 2018-01-01T00:00:00.000Z)
     * @param {Date} endTime Valid report End Time in **ISO 8601 format** Please refer the following link to know more about ISO 8601 format.[Rfc Date Format](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)  **Example date format:**   - yyyy-MM-dd&#x27;T&#x27;HH:mm:ss.SSSZ (e.g. 2018-01-01T00:00:00.000Z)
     * @param {string} timeQueryType Specify time you would like to search  Valid values: - reportTimeFrame - executedTime
     * @param {string} [organizationId] Valid Organization Id
     * @param {string} [reportMimeType] Valid Report Format  Valid values: - application/xml - text/csv
     * @param {string} [reportFrequency] Valid Report Frequency  Valid values: - DAILY - WEEKLY - MONTHLY - USER_DEFINED - ADHOC
     * @param {string} [reportName] Valid Report Name
     * @param {number} [reportDefinitionId] Valid Report Definition Id
     * @param {string} [reportStatus] Valid Report Status  Valid values: - COMPLETED - PENDING - QUEUED - RUNNING - ERROR - NO_DATA
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ReportsApi
     */
    searchReports(startTime: Date, endTime: Date, timeQueryType: string, organizationId?: string, reportMimeType?: string, reportFrequency?: string, reportName?: string, reportDefinitionId?: number, reportStatus?: string, options?: AxiosRequestConfig & Configuration): Promise<AxiosResponse<ReportingV3ReportsGet200Response>>;
}
