/**
 * 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 { AttachDetachUtxoLabelsRequest } from '../models';
import { AttachDetachUtxoLabelsResponse } from '../models';
import { ListUtxosResponse } from '../models';
/**
 * UTXOManagementBetaApi - axios parameter creator
 * @export
 */
export declare const UTXOManagementBetaApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * Returns a paginated list of unspent transaction outputs (UTXOs) for a UTXO-based asset in a vault account, with optional filters for labels, statuses, amounts, and more. **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
     * @summary List unspent outputs (UTXOs)
     * @param {string} vaultAccountId The ID of the vault account
     * @param {string} assetId The ID of the asset
     * @param {string} [pageCursor] Cursor for the next page of results
     * @param {number} [pageSize] Number of results per page (max 250, default 50)
     * @param {GetUtxosSortEnum} [sort] Field to sort by
     * @param {GetUtxosOrderEnum} [order] Sort order
     * @param {Array<string>} [includeAllLabels] Only return UTXOs that have ALL of these labels (AND logic).
     * @param {Array<string>} [includeAnyLabels] Return UTXOs that have ANY of these labels (OR logic).
     * @param {Array<string>} [excludeAnyLabels] Exclude UTXOs that have ANY of these labels.
     * @param {Array<string>} [includeStatuses] Filter by UTXO statuses to include.
     * @param {string} [address] Filter by address
     * @param {string} [minAmount] Minimum amount filter
     * @param {string} [maxAmount] Maximum amount filter
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getUtxos: (vaultAccountId: string, assetId: string, pageCursor?: string, pageSize?: number, sort?: GetUtxosSortEnum, order?: GetUtxosOrderEnum, includeAllLabels?: Array<string>, includeAnyLabels?: Array<string>, excludeAnyLabels?: Array<string>, includeStatuses?: Array<string>, address?: string, minAmount?: string, maxAmount?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Attach or detach labels to/from UTXOs in a vault account. Labels can be used for organizing and filtering UTXOs. Labels are applied additively — `labelsToAttach` adds to the existing label set and `labelsToDetach` removes from it. Neither operation replaces the full set. **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Attach or detach labels to/from UTXOs
     * @param {AttachDetachUtxoLabelsRequest} attachDetachUtxoLabelsRequest
     * @param {string} vaultAccountId The ID of the vault account
     * @param {string} assetId The ID of the asset
     * @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}
     */
    updateUtxoLabels: (attachDetachUtxoLabelsRequest: AttachDetachUtxoLabelsRequest, vaultAccountId: string, assetId: string, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * UTXOManagementBetaApi - functional programming interface
 * @export
 */
export declare const UTXOManagementBetaApiFp: (configuration?: Configuration) => {
    /**
     * Returns a paginated list of unspent transaction outputs (UTXOs) for a UTXO-based asset in a vault account, with optional filters for labels, statuses, amounts, and more. **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
     * @summary List unspent outputs (UTXOs)
     * @param {string} vaultAccountId The ID of the vault account
     * @param {string} assetId The ID of the asset
     * @param {string} [pageCursor] Cursor for the next page of results
     * @param {number} [pageSize] Number of results per page (max 250, default 50)
     * @param {GetUtxosSortEnum} [sort] Field to sort by
     * @param {GetUtxosOrderEnum} [order] Sort order
     * @param {Array<string>} [includeAllLabels] Only return UTXOs that have ALL of these labels (AND logic).
     * @param {Array<string>} [includeAnyLabels] Return UTXOs that have ANY of these labels (OR logic).
     * @param {Array<string>} [excludeAnyLabels] Exclude UTXOs that have ANY of these labels.
     * @param {Array<string>} [includeStatuses] Filter by UTXO statuses to include.
     * @param {string} [address] Filter by address
     * @param {string} [minAmount] Minimum amount filter
     * @param {string} [maxAmount] Maximum amount filter
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getUtxos(vaultAccountId: string, assetId: string, pageCursor?: string, pageSize?: number, sort?: GetUtxosSortEnum, order?: GetUtxosOrderEnum, includeAllLabels?: Array<string>, includeAnyLabels?: Array<string>, excludeAnyLabels?: Array<string>, includeStatuses?: Array<string>, address?: string, minAmount?: string, maxAmount?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ListUtxosResponse>>;
    /**
     * Attach or detach labels to/from UTXOs in a vault account. Labels can be used for organizing and filtering UTXOs. Labels are applied additively — `labelsToAttach` adds to the existing label set and `labelsToDetach` removes from it. Neither operation replaces the full set. **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Attach or detach labels to/from UTXOs
     * @param {AttachDetachUtxoLabelsRequest} attachDetachUtxoLabelsRequest
     * @param {string} vaultAccountId The ID of the vault account
     * @param {string} assetId The ID of the asset
     * @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}
     */
    updateUtxoLabels(attachDetachUtxoLabelsRequest: AttachDetachUtxoLabelsRequest, vaultAccountId: string, assetId: string, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AttachDetachUtxoLabelsResponse>>;
};
/**
 * UTXOManagementBetaApi - factory interface
 * @export
 */
export declare const UTXOManagementBetaApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     * Returns a paginated list of unspent transaction outputs (UTXOs) for a UTXO-based asset in a vault account, with optional filters for labels, statuses, amounts, and more. **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
     * @summary List unspent outputs (UTXOs)
     * @param {UTXOManagementBetaApiGetUtxosRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getUtxos(requestParameters: UTXOManagementBetaApiGetUtxosRequest, options?: RawAxiosRequestConfig): AxiosPromise<ListUtxosResponse>;
    /**
     * Attach or detach labels to/from UTXOs in a vault account. Labels can be used for organizing and filtering UTXOs. Labels are applied additively — `labelsToAttach` adds to the existing label set and `labelsToDetach` removes from it. Neither operation replaces the full set. **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Attach or detach labels to/from UTXOs
     * @param {UTXOManagementBetaApiUpdateUtxoLabelsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    updateUtxoLabels(requestParameters: UTXOManagementBetaApiUpdateUtxoLabelsRequest, options?: RawAxiosRequestConfig): AxiosPromise<AttachDetachUtxoLabelsResponse>;
};
/**
 * Request parameters for getUtxos operation in UTXOManagementBetaApi.
 * @export
 * @interface UTXOManagementBetaApiGetUtxosRequest
 */
export interface UTXOManagementBetaApiGetUtxosRequest {
    /**
     * The ID of the vault account
     * @type {string}
     * @memberof UTXOManagementBetaApiGetUtxos
     */
    readonly vaultAccountId: string;
    /**
     * The ID of the asset
     * @type {string}
     * @memberof UTXOManagementBetaApiGetUtxos
     */
    readonly assetId: string;
    /**
     * Cursor for the next page of results
     * @type {string}
     * @memberof UTXOManagementBetaApiGetUtxos
     */
    readonly pageCursor?: string;
    /**
     * Number of results per page (max 250, default 50)
     * @type {number}
     * @memberof UTXOManagementBetaApiGetUtxos
     */
    readonly pageSize?: number;
    /**
     * Field to sort by
     * @type {'AMOUNT' | 'CONFIRMATIONS'}
     * @memberof UTXOManagementBetaApiGetUtxos
     */
    readonly sort?: GetUtxosSortEnum;
    /**
     * Sort order
     * @type {'ASC' | 'DESC'}
     * @memberof UTXOManagementBetaApiGetUtxos
     */
    readonly order?: GetUtxosOrderEnum;
    /**
     * Only return UTXOs that have ALL of these labels (AND logic).
     * @type {Array<string>}
     * @memberof UTXOManagementBetaApiGetUtxos
     */
    readonly includeAllLabels?: Array<string>;
    /**
     * Return UTXOs that have ANY of these labels (OR logic).
     * @type {Array<string>}
     * @memberof UTXOManagementBetaApiGetUtxos
     */
    readonly includeAnyLabels?: Array<string>;
    /**
     * Exclude UTXOs that have ANY of these labels.
     * @type {Array<string>}
     * @memberof UTXOManagementBetaApiGetUtxos
     */
    readonly excludeAnyLabels?: Array<string>;
    /**
     * Filter by UTXO statuses to include.
     * @type {Array<string>}
     * @memberof UTXOManagementBetaApiGetUtxos
     */
    readonly includeStatuses?: Array<string>;
    /**
     * Filter by address
     * @type {string}
     * @memberof UTXOManagementBetaApiGetUtxos
     */
    readonly address?: string;
    /**
     * Minimum amount filter
     * @type {string}
     * @memberof UTXOManagementBetaApiGetUtxos
     */
    readonly minAmount?: string;
    /**
     * Maximum amount filter
     * @type {string}
     * @memberof UTXOManagementBetaApiGetUtxos
     */
    readonly maxAmount?: string;
}
/**
 * Request parameters for updateUtxoLabels operation in UTXOManagementBetaApi.
 * @export
 * @interface UTXOManagementBetaApiUpdateUtxoLabelsRequest
 */
export interface UTXOManagementBetaApiUpdateUtxoLabelsRequest {
    /**
     *
     * @type {AttachDetachUtxoLabelsRequest}
     * @memberof UTXOManagementBetaApiUpdateUtxoLabels
     */
    readonly attachDetachUtxoLabelsRequest: AttachDetachUtxoLabelsRequest;
    /**
     * The ID of the vault account
     * @type {string}
     * @memberof UTXOManagementBetaApiUpdateUtxoLabels
     */
    readonly vaultAccountId: string;
    /**
     * The ID of the asset
     * @type {string}
     * @memberof UTXOManagementBetaApiUpdateUtxoLabels
     */
    readonly assetId: 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 UTXOManagementBetaApiUpdateUtxoLabels
     */
    readonly idempotencyKey?: string;
}
/**
 * UTXOManagementBetaApi - object-oriented interface
 * @export
 * @class UTXOManagementBetaApi
 * @extends {BaseAPI}
 */
export declare class UTXOManagementBetaApi extends BaseAPI {
    /**
     * Returns a paginated list of unspent transaction outputs (UTXOs) for a UTXO-based asset in a vault account, with optional filters for labels, statuses, amounts, and more. **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.
     * @summary List unspent outputs (UTXOs)
     * @param {UTXOManagementBetaApiGetUtxosRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UTXOManagementBetaApi
     */
    getUtxos(requestParameters: UTXOManagementBetaApiGetUtxosRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<ListUtxosResponse>>;
    /**
     * Attach or detach labels to/from UTXOs in a vault account. Labels can be used for organizing and filtering UTXOs. Labels are applied additively — `labelsToAttach` adds to the existing label set and `labelsToDetach` removes from it. Neither operation replaces the full set. **Note:** These endpoints are currently in beta and might be subject to changes. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Attach or detach labels to/from UTXOs
     * @param {UTXOManagementBetaApiUpdateUtxoLabelsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof UTXOManagementBetaApi
     */
    updateUtxoLabels(requestParameters: UTXOManagementBetaApiUpdateUtxoLabelsRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<AttachDetachUtxoLabelsResponse>>;
}
/**
 * @export
 */
export declare const GetUtxosSortEnum: {
    readonly Amount: "AMOUNT";
    readonly Confirmations: "CONFIRMATIONS";
};
export type GetUtxosSortEnum = typeof GetUtxosSortEnum[keyof typeof GetUtxosSortEnum];
/**
 * @export
 */
export declare const GetUtxosOrderEnum: {
    readonly Asc: "ASC";
    readonly Desc: "DESC";
};
export type GetUtxosOrderEnum = typeof GetUtxosOrderEnum[keyof typeof GetUtxosOrderEnum];
