/**
 * 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 { AddCollateralRequestBody } from '../models';
import { CreateTransactionResponse } from '../models';
import { ExchangeAccount } from '../models';
import { ExchangeSettlementTransactionsResponse } from '../models';
import { RemoveCollateralRequestBody } from '../models';
import { SettlementRequestBody } from '../models';
import { SettlementResponse } from '../models';
/**
 * OffExchangesApi - axios parameter creator
 * @export
 */
export declare const OffExchangesApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * Add collateral and create deposit request. Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Add Collateral
     * @param {AddCollateralRequestBody} [addCollateralRequestBody]
     * @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}
     */
    addOffExchange: (addCollateralRequestBody?: AddCollateralRequestBody, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Returns a collateral account by mainExchangeAccountId. Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Find a specific collateral exchange account
     * @param {string} mainExchangeAccountId The id of the main exchange account for which the requested collateral account is associated with
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getOffExchangeCollateralAccounts: (mainExchangeAccountId: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Get settlements transactions from exchange. Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Get Settlements Transactions
     * @param {string} mainExchangeAccountId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getOffExchangeSettlementTransactions: (mainExchangeAccountId: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Remove collateral, create withdraw request. Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Remove Collateral
     * @param {RemoveCollateralRequestBody} [removeCollateralRequestBody]
     * @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}
     */
    removeOffExchange: (removeCollateralRequestBody?: RemoveCollateralRequestBody, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Create settlement for a trader. Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Create Settlement for a Trader
     * @param {SettlementRequestBody} [settlementRequestBody]
     * @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}
     */
    settleOffExchangeTrades: (settlementRequestBody?: SettlementRequestBody, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * OffExchangesApi - functional programming interface
 * @export
 */
export declare const OffExchangesApiFp: (configuration?: Configuration) => {
    /**
     * Add collateral and create deposit request. Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Add Collateral
     * @param {AddCollateralRequestBody} [addCollateralRequestBody]
     * @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}
     */
    addOffExchange(addCollateralRequestBody?: AddCollateralRequestBody, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CreateTransactionResponse>>;
    /**
     * Returns a collateral account by mainExchangeAccountId. Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Find a specific collateral exchange account
     * @param {string} mainExchangeAccountId The id of the main exchange account for which the requested collateral account is associated with
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getOffExchangeCollateralAccounts(mainExchangeAccountId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ExchangeAccount>>;
    /**
     * Get settlements transactions from exchange. Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Get Settlements Transactions
     * @param {string} mainExchangeAccountId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getOffExchangeSettlementTransactions(mainExchangeAccountId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ExchangeSettlementTransactionsResponse>>;
    /**
     * Remove collateral, create withdraw request. Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Remove Collateral
     * @param {RemoveCollateralRequestBody} [removeCollateralRequestBody]
     * @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}
     */
    removeOffExchange(removeCollateralRequestBody?: RemoveCollateralRequestBody, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CreateTransactionResponse>>;
    /**
     * Create settlement for a trader. Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Create Settlement for a Trader
     * @param {SettlementRequestBody} [settlementRequestBody]
     * @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}
     */
    settleOffExchangeTrades(settlementRequestBody?: SettlementRequestBody, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SettlementResponse>>;
};
/**
 * OffExchangesApi - factory interface
 * @export
 */
export declare const OffExchangesApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     * Add collateral and create deposit request. Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Add Collateral
     * @param {OffExchangesApiAddOffExchangeRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    addOffExchange(requestParameters?: OffExchangesApiAddOffExchangeRequest, options?: RawAxiosRequestConfig): AxiosPromise<CreateTransactionResponse>;
    /**
     * Returns a collateral account by mainExchangeAccountId. Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Find a specific collateral exchange account
     * @param {OffExchangesApiGetOffExchangeCollateralAccountsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getOffExchangeCollateralAccounts(requestParameters: OffExchangesApiGetOffExchangeCollateralAccountsRequest, options?: RawAxiosRequestConfig): AxiosPromise<ExchangeAccount>;
    /**
     * Get settlements transactions from exchange. Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Get Settlements Transactions
     * @param {OffExchangesApiGetOffExchangeSettlementTransactionsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getOffExchangeSettlementTransactions(requestParameters: OffExchangesApiGetOffExchangeSettlementTransactionsRequest, options?: RawAxiosRequestConfig): AxiosPromise<ExchangeSettlementTransactionsResponse>;
    /**
     * Remove collateral, create withdraw request. Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Remove Collateral
     * @param {OffExchangesApiRemoveOffExchangeRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    removeOffExchange(requestParameters?: OffExchangesApiRemoveOffExchangeRequest, options?: RawAxiosRequestConfig): AxiosPromise<CreateTransactionResponse>;
    /**
     * Create settlement for a trader. Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Create Settlement for a Trader
     * @param {OffExchangesApiSettleOffExchangeTradesRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    settleOffExchangeTrades(requestParameters?: OffExchangesApiSettleOffExchangeTradesRequest, options?: RawAxiosRequestConfig): AxiosPromise<SettlementResponse>;
};
/**
 * Request parameters for addOffExchange operation in OffExchangesApi.
 * @export
 * @interface OffExchangesApiAddOffExchangeRequest
 */
export interface OffExchangesApiAddOffExchangeRequest {
    /**
     *
     * @type {AddCollateralRequestBody}
     * @memberof OffExchangesApiAddOffExchange
     */
    readonly addCollateralRequestBody?: AddCollateralRequestBody;
    /**
     * 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 OffExchangesApiAddOffExchange
     */
    readonly idempotencyKey?: string;
}
/**
 * Request parameters for getOffExchangeCollateralAccounts operation in OffExchangesApi.
 * @export
 * @interface OffExchangesApiGetOffExchangeCollateralAccountsRequest
 */
export interface OffExchangesApiGetOffExchangeCollateralAccountsRequest {
    /**
     * The id of the main exchange account for which the requested collateral account is associated with
     * @type {string}
     * @memberof OffExchangesApiGetOffExchangeCollateralAccounts
     */
    readonly mainExchangeAccountId: string;
}
/**
 * Request parameters for getOffExchangeSettlementTransactions operation in OffExchangesApi.
 * @export
 * @interface OffExchangesApiGetOffExchangeSettlementTransactionsRequest
 */
export interface OffExchangesApiGetOffExchangeSettlementTransactionsRequest {
    /**
     *
     * @type {string}
     * @memberof OffExchangesApiGetOffExchangeSettlementTransactions
     */
    readonly mainExchangeAccountId: string;
}
/**
 * Request parameters for removeOffExchange operation in OffExchangesApi.
 * @export
 * @interface OffExchangesApiRemoveOffExchangeRequest
 */
export interface OffExchangesApiRemoveOffExchangeRequest {
    /**
     *
     * @type {RemoveCollateralRequestBody}
     * @memberof OffExchangesApiRemoveOffExchange
     */
    readonly removeCollateralRequestBody?: RemoveCollateralRequestBody;
    /**
     * 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 OffExchangesApiRemoveOffExchange
     */
    readonly idempotencyKey?: string;
}
/**
 * Request parameters for settleOffExchangeTrades operation in OffExchangesApi.
 * @export
 * @interface OffExchangesApiSettleOffExchangeTradesRequest
 */
export interface OffExchangesApiSettleOffExchangeTradesRequest {
    /**
     *
     * @type {SettlementRequestBody}
     * @memberof OffExchangesApiSettleOffExchangeTrades
     */
    readonly settlementRequestBody?: SettlementRequestBody;
    /**
     * 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 OffExchangesApiSettleOffExchangeTrades
     */
    readonly idempotencyKey?: string;
}
/**
 * OffExchangesApi - object-oriented interface
 * @export
 * @class OffExchangesApi
 * @extends {BaseAPI}
 */
export declare class OffExchangesApi extends BaseAPI {
    /**
     * Add collateral and create deposit request. Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Add Collateral
     * @param {OffExchangesApiAddOffExchangeRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof OffExchangesApi
     */
    addOffExchange(requestParameters?: OffExchangesApiAddOffExchangeRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<CreateTransactionResponse>>;
    /**
     * Returns a collateral account by mainExchangeAccountId. Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Find a specific collateral exchange account
     * @param {OffExchangesApiGetOffExchangeCollateralAccountsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof OffExchangesApi
     */
    getOffExchangeCollateralAccounts(requestParameters: OffExchangesApiGetOffExchangeCollateralAccountsRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<ExchangeAccount>>;
    /**
     * Get settlements transactions from exchange. Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Get Settlements Transactions
     * @param {OffExchangesApiGetOffExchangeSettlementTransactionsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof OffExchangesApi
     */
    getOffExchangeSettlementTransactions(requestParameters: OffExchangesApiGetOffExchangeSettlementTransactionsRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<ExchangeSettlementTransactionsResponse>>;
    /**
     * Remove collateral, create withdraw request. Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Remove Collateral
     * @param {OffExchangesApiRemoveOffExchangeRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof OffExchangesApi
     */
    removeOffExchange(requestParameters?: OffExchangesApiRemoveOffExchangeRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<CreateTransactionResponse>>;
    /**
     * Create settlement for a trader. Learn more about Fireblocks Off Exchange in the following [guide](https://developers.fireblocks.com/docs/off-exchange). Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Create Settlement for a Trader
     * @param {OffExchangesApiSettleOffExchangeTradesRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof OffExchangesApi
     */
    settleOffExchangeTrades(requestParameters?: OffExchangesApiSettleOffExchangeTradesRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<SettlementResponse>>;
}
