/**
 * 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 { CreatePayoutRequest } from '../models';
import { DispatchPayoutResponse } from '../models';
import { PayoutResponse } from '../models';
/**
 * PaymentsPayoutApi - axios parameter creator
 * @export
 */
export declare const PaymentsPayoutApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * **Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoints include APIs available only for customers with Payments Engine enabled on their accounts.  These endpoints are currently in beta and might be subject to changes.  If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or email CSM@fireblocks.com.  **Create a payout instruction set.**  A payout instruction set is a set of instructions for distributing payments from a single payment account to a list of payee accounts.  The instruction set defines:  - the payment account and its account type (vault, exchange, or fiat). - the account type (vault account, exchange account, whitelisted address,   network connection, fiat account, or merchant account), the amount, and the   asset of payment for each payee account.  Learn more about Fireblocks Payments - Payouts in the following [guide](https://developers.fireblocks.com/docs/create-payouts).  Endpoint Permission: Admin, Non-Signing Admin.
     * @summary Create a payout instruction set
     * @param {CreatePayoutRequest} [createPayoutRequest]
     * @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}
     */
    createPayout: (createPayoutRequest?: CreatePayoutRequest, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * **Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoints include APIs available only for customers with Payments Engine enabled on their accounts.  These endpoints are currently in beta and might be subject to changes.  If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or email CSM@fireblocks.com.  **Execute a payout instruction set.**  The instruction set will be verified and executed.  **Source locking**  If you are executing a payout instruction set from a payment account with an already active payout the active payout will complete before the new payout instruction set can be executed.  You cannot execute the same payout instruction set more than once.
     * @summary Execute a payout instruction set
     * @param {string} payoutId the payout id received from the creation of the payout instruction set
     * @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}
     */
    executePayoutAction: (payoutId: string, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * **Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoints include APIs available only for customers with Payments Engine enabled on their accounts.  These endpoints are currently in beta and might be subject to changes. If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or email CSM@fireblocks.com.  Endpoint Permission: Admin, Non-Signing Admin.
     * @summary Get the status of a payout instruction set
     * @param {string} payoutId the payout id received from the creation of the payout instruction set
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getPayout: (payoutId: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * PaymentsPayoutApi - functional programming interface
 * @export
 */
export declare const PaymentsPayoutApiFp: (configuration?: Configuration) => {
    /**
     * **Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoints include APIs available only for customers with Payments Engine enabled on their accounts.  These endpoints are currently in beta and might be subject to changes.  If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or email CSM@fireblocks.com.  **Create a payout instruction set.**  A payout instruction set is a set of instructions for distributing payments from a single payment account to a list of payee accounts.  The instruction set defines:  - the payment account and its account type (vault, exchange, or fiat). - the account type (vault account, exchange account, whitelisted address,   network connection, fiat account, or merchant account), the amount, and the   asset of payment for each payee account.  Learn more about Fireblocks Payments - Payouts in the following [guide](https://developers.fireblocks.com/docs/create-payouts).  Endpoint Permission: Admin, Non-Signing Admin.
     * @summary Create a payout instruction set
     * @param {CreatePayoutRequest} [createPayoutRequest]
     * @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}
     */
    createPayout(createPayoutRequest?: CreatePayoutRequest, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PayoutResponse>>;
    /**
     * **Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoints include APIs available only for customers with Payments Engine enabled on their accounts.  These endpoints are currently in beta and might be subject to changes.  If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or email CSM@fireblocks.com.  **Execute a payout instruction set.**  The instruction set will be verified and executed.  **Source locking**  If you are executing a payout instruction set from a payment account with an already active payout the active payout will complete before the new payout instruction set can be executed.  You cannot execute the same payout instruction set more than once.
     * @summary Execute a payout instruction set
     * @param {string} payoutId the payout id received from the creation of the payout instruction set
     * @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}
     */
    executePayoutAction(payoutId: string, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DispatchPayoutResponse>>;
    /**
     * **Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoints include APIs available only for customers with Payments Engine enabled on their accounts.  These endpoints are currently in beta and might be subject to changes. If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or email CSM@fireblocks.com.  Endpoint Permission: Admin, Non-Signing Admin.
     * @summary Get the status of a payout instruction set
     * @param {string} payoutId the payout id received from the creation of the payout instruction set
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getPayout(payoutId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PayoutResponse>>;
};
/**
 * PaymentsPayoutApi - factory interface
 * @export
 */
export declare const PaymentsPayoutApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     * **Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoints include APIs available only for customers with Payments Engine enabled on their accounts.  These endpoints are currently in beta and might be subject to changes.  If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or email CSM@fireblocks.com.  **Create a payout instruction set.**  A payout instruction set is a set of instructions for distributing payments from a single payment account to a list of payee accounts.  The instruction set defines:  - the payment account and its account type (vault, exchange, or fiat). - the account type (vault account, exchange account, whitelisted address,   network connection, fiat account, or merchant account), the amount, and the   asset of payment for each payee account.  Learn more about Fireblocks Payments - Payouts in the following [guide](https://developers.fireblocks.com/docs/create-payouts).  Endpoint Permission: Admin, Non-Signing Admin.
     * @summary Create a payout instruction set
     * @param {PaymentsPayoutApiCreatePayoutRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createPayout(requestParameters?: PaymentsPayoutApiCreatePayoutRequest, options?: RawAxiosRequestConfig): AxiosPromise<PayoutResponse>;
    /**
     * **Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoints include APIs available only for customers with Payments Engine enabled on their accounts.  These endpoints are currently in beta and might be subject to changes.  If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or email CSM@fireblocks.com.  **Execute a payout instruction set.**  The instruction set will be verified and executed.  **Source locking**  If you are executing a payout instruction set from a payment account with an already active payout the active payout will complete before the new payout instruction set can be executed.  You cannot execute the same payout instruction set more than once.
     * @summary Execute a payout instruction set
     * @param {PaymentsPayoutApiExecutePayoutActionRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    executePayoutAction(requestParameters: PaymentsPayoutApiExecutePayoutActionRequest, options?: RawAxiosRequestConfig): AxiosPromise<DispatchPayoutResponse>;
    /**
     * **Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoints include APIs available only for customers with Payments Engine enabled on their accounts.  These endpoints are currently in beta and might be subject to changes. If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or email CSM@fireblocks.com.  Endpoint Permission: Admin, Non-Signing Admin.
     * @summary Get the status of a payout instruction set
     * @param {PaymentsPayoutApiGetPayoutRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getPayout(requestParameters: PaymentsPayoutApiGetPayoutRequest, options?: RawAxiosRequestConfig): AxiosPromise<PayoutResponse>;
};
/**
 * Request parameters for createPayout operation in PaymentsPayoutApi.
 * @export
 * @interface PaymentsPayoutApiCreatePayoutRequest
 */
export interface PaymentsPayoutApiCreatePayoutRequest {
    /**
     *
     * @type {CreatePayoutRequest}
     * @memberof PaymentsPayoutApiCreatePayout
     */
    readonly createPayoutRequest?: CreatePayoutRequest;
    /**
     * 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 PaymentsPayoutApiCreatePayout
     */
    readonly idempotencyKey?: string;
}
/**
 * Request parameters for executePayoutAction operation in PaymentsPayoutApi.
 * @export
 * @interface PaymentsPayoutApiExecutePayoutActionRequest
 */
export interface PaymentsPayoutApiExecutePayoutActionRequest {
    /**
     * the payout id received from the creation of the payout instruction set
     * @type {string}
     * @memberof PaymentsPayoutApiExecutePayoutAction
     */
    readonly payoutId: string;
    /**
     * 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 PaymentsPayoutApiExecutePayoutAction
     */
    readonly idempotencyKey?: string;
}
/**
 * Request parameters for getPayout operation in PaymentsPayoutApi.
 * @export
 * @interface PaymentsPayoutApiGetPayoutRequest
 */
export interface PaymentsPayoutApiGetPayoutRequest {
    /**
     * the payout id received from the creation of the payout instruction set
     * @type {string}
     * @memberof PaymentsPayoutApiGetPayout
     */
    readonly payoutId: string;
}
/**
 * PaymentsPayoutApi - object-oriented interface
 * @export
 * @class PaymentsPayoutApi
 * @extends {BaseAPI}
 */
export declare class PaymentsPayoutApi extends BaseAPI {
    /**
     * **Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoints include APIs available only for customers with Payments Engine enabled on their accounts.  These endpoints are currently in beta and might be subject to changes.  If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or email CSM@fireblocks.com.  **Create a payout instruction set.**  A payout instruction set is a set of instructions for distributing payments from a single payment account to a list of payee accounts.  The instruction set defines:  - the payment account and its account type (vault, exchange, or fiat). - the account type (vault account, exchange account, whitelisted address,   network connection, fiat account, or merchant account), the amount, and the   asset of payment for each payee account.  Learn more about Fireblocks Payments - Payouts in the following [guide](https://developers.fireblocks.com/docs/create-payouts).  Endpoint Permission: Admin, Non-Signing Admin.
     * @summary Create a payout instruction set
     * @param {PaymentsPayoutApiCreatePayoutRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PaymentsPayoutApi
     */
    createPayout(requestParameters?: PaymentsPayoutApiCreatePayoutRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<PayoutResponse>>;
    /**
     * **Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoints include APIs available only for customers with Payments Engine enabled on their accounts.  These endpoints are currently in beta and might be subject to changes.  If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or email CSM@fireblocks.com.  **Execute a payout instruction set.**  The instruction set will be verified and executed.  **Source locking**  If you are executing a payout instruction set from a payment account with an already active payout the active payout will complete before the new payout instruction set can be executed.  You cannot execute the same payout instruction set more than once.
     * @summary Execute a payout instruction set
     * @param {PaymentsPayoutApiExecutePayoutActionRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PaymentsPayoutApi
     */
    executePayoutAction(requestParameters: PaymentsPayoutApiExecutePayoutActionRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<DispatchPayoutResponse>>;
    /**
     * **Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine endpoints include APIs available only for customers with Payments Engine enabled on their accounts.  These endpoints are currently in beta and might be subject to changes. If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager or email CSM@fireblocks.com.  Endpoint Permission: Admin, Non-Signing Admin.
     * @summary Get the status of a payout instruction set
     * @param {PaymentsPayoutApiGetPayoutRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PaymentsPayoutApi
     */
    getPayout(requestParameters: PaymentsPayoutApiGetPayoutRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<PayoutResponse>>;
}
