/**
 * Fireblocks API
 * Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain.  - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
 *
 * The version of the OpenAPI document: 1.6.2
 * Contact: developers@fireblocks.com
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import type { Configuration } from '../configuration';
import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios';
import { RequestArgs, BaseAPI } from '../base';
import { CreateReportRequest } from '../models';
import { CreateReportResponse } from '../models';
import { ReportJobResponse } from '../models';
import { ReportListResponse } from '../models';
import { ReportStatus } from '../models';
import { ReportType } from '../models';
/**
 * ReportsBetaApi - axios parameter creator
 * @export
 */
export declare const ReportsBetaApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * Creates a new asynchronous report job and returns a receipt containing the report ID. Poll `GET /v1/reports/{reportId}` to check status. When `status` is `COMPLETED`, the poll response includes a fresh pre-signed download URL in `links.downloadUrl`.  **Note:** These endpoints are currently in beta and might be subject to changes.  Endpoint Permission: Viewer and above.
     * @summary Create a report
     * @param {CreateReportRequest} createReportRequest
     * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createReport: (createReportRequest: CreateReportRequest, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Returns the current status of a report job. Check the `status` field to determine the outcome.  When `status` is `COMPLETED`, the response includes a fresh pre-signed download URL in `links.downloadUrl` (TTL ~1 hour). Re-poll this endpoint to obtain a new URL after expiry.  When `status` is `FAILED`, the `failedAt` timestamp indicates when the failure occurred.  **Note:** These endpoints are currently in beta and might be subject to changes.  Endpoint Permission: Viewer and above.
     * @summary Get report status
     * @param {string} reportId The unique identifier of the report job
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getReport: (reportId: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Returns a paginated list of report jobs scoped to the calling tenant.  **Note:** Download URLs are not included in list responses. Call `GET /v1/reports/{reportId}` to obtain a fresh signed download URL for a specific completed report.  **Note:** These endpoints are currently in beta and might be subject to changes.  Endpoint Permission: Viewer and above.
     * @summary List reports
     * @param {string} [pageCursor] Opaque cursor returned from a previous list call
     * @param {number} [pageSize] Maximum number of items per page
     * @param {ListReportsSortByEnum} [sortBy] Field to sort by
     * @param {ListReportsOrderEnum} [order] Sort direction
     * @param {Array<ReportStatus>} [status] Filter by lifecycle status. Repeat the parameter to filter on multiple statuses (e.g., ?status&#x3D;QUEUED&amp;status&#x3D;PROCESSING).
     * @param {Array<ReportType>} [reportType] Filter by report type. Repeat the parameter to filter on multiple types.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listReports: (pageCursor?: string, pageSize?: number, sortBy?: ListReportsSortByEnum, order?: ListReportsOrderEnum, status?: Array<ReportStatus>, reportType?: Array<ReportType>, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * ReportsBetaApi - functional programming interface
 * @export
 */
export declare const ReportsBetaApiFp: (configuration?: Configuration) => {
    /**
     * Creates a new asynchronous report job and returns a receipt containing the report ID. Poll `GET /v1/reports/{reportId}` to check status. When `status` is `COMPLETED`, the poll response includes a fresh pre-signed download URL in `links.downloadUrl`.  **Note:** These endpoints are currently in beta and might be subject to changes.  Endpoint Permission: Viewer and above.
     * @summary Create a report
     * @param {CreateReportRequest} createReportRequest
     * @param {string} [idempotencyKey] A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createReport(createReportRequest: CreateReportRequest, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CreateReportResponse>>;
    /**
     * Returns the current status of a report job. Check the `status` field to determine the outcome.  When `status` is `COMPLETED`, the response includes a fresh pre-signed download URL in `links.downloadUrl` (TTL ~1 hour). Re-poll this endpoint to obtain a new URL after expiry.  When `status` is `FAILED`, the `failedAt` timestamp indicates when the failure occurred.  **Note:** These endpoints are currently in beta and might be subject to changes.  Endpoint Permission: Viewer and above.
     * @summary Get report status
     * @param {string} reportId The unique identifier of the report job
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getReport(reportId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ReportJobResponse>>;
    /**
     * Returns a paginated list of report jobs scoped to the calling tenant.  **Note:** Download URLs are not included in list responses. Call `GET /v1/reports/{reportId}` to obtain a fresh signed download URL for a specific completed report.  **Note:** These endpoints are currently in beta and might be subject to changes.  Endpoint Permission: Viewer and above.
     * @summary List reports
     * @param {string} [pageCursor] Opaque cursor returned from a previous list call
     * @param {number} [pageSize] Maximum number of items per page
     * @param {ListReportsSortByEnum} [sortBy] Field to sort by
     * @param {ListReportsOrderEnum} [order] Sort direction
     * @param {Array<ReportStatus>} [status] Filter by lifecycle status. Repeat the parameter to filter on multiple statuses (e.g., ?status&#x3D;QUEUED&amp;status&#x3D;PROCESSING).
     * @param {Array<ReportType>} [reportType] Filter by report type. Repeat the parameter to filter on multiple types.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listReports(pageCursor?: string, pageSize?: number, sortBy?: ListReportsSortByEnum, order?: ListReportsOrderEnum, status?: Array<ReportStatus>, reportType?: Array<ReportType>, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ReportListResponse>>;
};
/**
 * ReportsBetaApi - factory interface
 * @export
 */
export declare const ReportsBetaApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     * Creates a new asynchronous report job and returns a receipt containing the report ID. Poll `GET /v1/reports/{reportId}` to check status. When `status` is `COMPLETED`, the poll response includes a fresh pre-signed download URL in `links.downloadUrl`.  **Note:** These endpoints are currently in beta and might be subject to changes.  Endpoint Permission: Viewer and above.
     * @summary Create a report
     * @param {ReportsBetaApiCreateReportRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createReport(requestParameters: ReportsBetaApiCreateReportRequest, options?: RawAxiosRequestConfig): AxiosPromise<CreateReportResponse>;
    /**
     * Returns the current status of a report job. Check the `status` field to determine the outcome.  When `status` is `COMPLETED`, the response includes a fresh pre-signed download URL in `links.downloadUrl` (TTL ~1 hour). Re-poll this endpoint to obtain a new URL after expiry.  When `status` is `FAILED`, the `failedAt` timestamp indicates when the failure occurred.  **Note:** These endpoints are currently in beta and might be subject to changes.  Endpoint Permission: Viewer and above.
     * @summary Get report status
     * @param {ReportsBetaApiGetReportRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getReport(requestParameters: ReportsBetaApiGetReportRequest, options?: RawAxiosRequestConfig): AxiosPromise<ReportJobResponse>;
    /**
     * Returns a paginated list of report jobs scoped to the calling tenant.  **Note:** Download URLs are not included in list responses. Call `GET /v1/reports/{reportId}` to obtain a fresh signed download URL for a specific completed report.  **Note:** These endpoints are currently in beta and might be subject to changes.  Endpoint Permission: Viewer and above.
     * @summary List reports
     * @param {ReportsBetaApiListReportsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listReports(requestParameters?: ReportsBetaApiListReportsRequest, options?: RawAxiosRequestConfig): AxiosPromise<ReportListResponse>;
};
/**
 * Request parameters for createReport operation in ReportsBetaApi.
 * @export
 * @interface ReportsBetaApiCreateReportRequest
 */
export interface ReportsBetaApiCreateReportRequest {
    /**
     *
     * @type {CreateReportRequest}
     * @memberof ReportsBetaApiCreateReport
     */
    readonly createReportRequest: CreateReportRequest;
    /**
     * A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.
     * @type {string}
     * @memberof ReportsBetaApiCreateReport
     */
    readonly idempotencyKey?: string;
}
/**
 * Request parameters for getReport operation in ReportsBetaApi.
 * @export
 * @interface ReportsBetaApiGetReportRequest
 */
export interface ReportsBetaApiGetReportRequest {
    /**
     * The unique identifier of the report job
     * @type {string}
     * @memberof ReportsBetaApiGetReport
     */
    readonly reportId: string;
}
/**
 * Request parameters for listReports operation in ReportsBetaApi.
 * @export
 * @interface ReportsBetaApiListReportsRequest
 */
export interface ReportsBetaApiListReportsRequest {
    /**
     * Opaque cursor returned from a previous list call
     * @type {string}
     * @memberof ReportsBetaApiListReports
     */
    readonly pageCursor?: string;
    /**
     * Maximum number of items per page
     * @type {number}
     * @memberof ReportsBetaApiListReports
     */
    readonly pageSize?: number;
    /**
     * Field to sort by
     * @type {'createdAt' | 'completedAt'}
     * @memberof ReportsBetaApiListReports
     */
    readonly sortBy?: ListReportsSortByEnum;
    /**
     * Sort direction
     * @type {'ASC' | 'DESC'}
     * @memberof ReportsBetaApiListReports
     */
    readonly order?: ListReportsOrderEnum;
    /**
     * Filter by lifecycle status. Repeat the parameter to filter on multiple statuses (e.g., ?status&#x3D;QUEUED&amp;status&#x3D;PROCESSING).
     * @type {Array<ReportStatus>}
     * @memberof ReportsBetaApiListReports
     */
    readonly status?: Array<ReportStatus>;
    /**
     * Filter by report type. Repeat the parameter to filter on multiple types.
     * @type {Array<ReportType>}
     * @memberof ReportsBetaApiListReports
     */
    readonly reportType?: Array<ReportType>;
}
/**
 * ReportsBetaApi - object-oriented interface
 * @export
 * @class ReportsBetaApi
 * @extends {BaseAPI}
 */
export declare class ReportsBetaApi extends BaseAPI {
    /**
     * Creates a new asynchronous report job and returns a receipt containing the report ID. Poll `GET /v1/reports/{reportId}` to check status. When `status` is `COMPLETED`, the poll response includes a fresh pre-signed download URL in `links.downloadUrl`.  **Note:** These endpoints are currently in beta and might be subject to changes.  Endpoint Permission: Viewer and above.
     * @summary Create a report
     * @param {ReportsBetaApiCreateReportRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ReportsBetaApi
     */
    createReport(requestParameters: ReportsBetaApiCreateReportRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<CreateReportResponse>>;
    /**
     * Returns the current status of a report job. Check the `status` field to determine the outcome.  When `status` is `COMPLETED`, the response includes a fresh pre-signed download URL in `links.downloadUrl` (TTL ~1 hour). Re-poll this endpoint to obtain a new URL after expiry.  When `status` is `FAILED`, the `failedAt` timestamp indicates when the failure occurred.  **Note:** These endpoints are currently in beta and might be subject to changes.  Endpoint Permission: Viewer and above.
     * @summary Get report status
     * @param {ReportsBetaApiGetReportRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ReportsBetaApi
     */
    getReport(requestParameters: ReportsBetaApiGetReportRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<ReportJobResponse>>;
    /**
     * Returns a paginated list of report jobs scoped to the calling tenant.  **Note:** Download URLs are not included in list responses. Call `GET /v1/reports/{reportId}` to obtain a fresh signed download URL for a specific completed report.  **Note:** These endpoints are currently in beta and might be subject to changes.  Endpoint Permission: Viewer and above.
     * @summary List reports
     * @param {ReportsBetaApiListReportsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof ReportsBetaApi
     */
    listReports(requestParameters?: ReportsBetaApiListReportsRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<ReportListResponse>>;
}
/**
 * @export
 */
export declare const ListReportsSortByEnum: {
    readonly CreatedAt: "createdAt";
    readonly CompletedAt: "completedAt";
};
export type ListReportsSortByEnum = typeof ListReportsSortByEnum[keyof typeof ListReportsSortByEnum];
/**
 * @export
 */
export declare const ListReportsOrderEnum: {
    readonly Asc: "ASC";
    readonly Desc: "DESC";
};
export type ListReportsOrderEnum = typeof ListReportsOrderEnum[keyof typeof ListReportsOrderEnum];
