/**
 * 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 { ChainDescriptor } from '../models';
import { ChainInfoResponse } from '../models';
import { ClaimRewardsRequest } from '../models';
import { Delegation } from '../models';
import { DelegationSummary } from '../models';
import { MergeStakeAccountsRequest } from '../models';
import { MergeStakeAccountsResponse } from '../models';
import { SplitRequest } from '../models';
import { SplitResponse } from '../models';
import { StakeRequest } from '../models';
import { StakeResponse } from '../models';
import { StakingGetAllDelegationsResponse } from '../models';
import { StakingGetChainsResponse } from '../models';
import { StakingGetProvidersResponse } from '../models';
import { StakingGetSummaryByVaultResponse } from '../models';
import { StakingPositionsPaginatedResponse } from '../models';
import { StakingProvider } from '../models';
import { UnstakeRequest } from '../models';
import { WithdrawRequest } from '../models';
/**
 * StakingApi - axios parameter creator
 * @export
 */
export declare const StakingApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * Approves the provider\'s terms of service. Must be called once before performing any staking operation with this provider.
     * @summary Approve provider terms of service
     * @param {StakingProvider} providerId Unique identifier of the staking provider.
     * @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}
     */
    approveTermsOfServiceByProviderId: (providerId: StakingProvider, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Claims available staking rewards for the specified chain and vault. Supported chains: Solana and Polygon (POL/Matic). Behavior depends on protocol reward distribution.
     * @summary Claim accrued rewards
     * @param {ClaimRewardsRequest} claimRewardsRequest
     * @param {ClaimRewardsChainDescriptorEnum} chainDescriptor Protocol identifier for the claim rewards staking operation (e.g., POL/MATIC/SOL).
     * @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}
     */
    claimRewards: (claimRewardsRequest: ClaimRewardsRequest, chainDescriptor: ClaimRewardsChainDescriptorEnum, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Consolidates the source staking position into the destination, merging the balance into the destination and closing the source position once complete. Both positions must be from the same vault account (i.e. same withdrawal credentials).  On chain, this translates into a consolidation transaction, where the  source validator is consolidated into the destination validator.  Supported chains: Ethereum (ETH) only. Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor. **Note:** This endpoint is currently in beta and might be subject to changes.
     * @summary Consolidate staking positions (ETH validator consolidation)
     * @param {MergeStakeAccountsRequest} mergeStakeAccountsRequest
     * @param {ConsolidateChainDescriptorEnum} chainDescriptor Protocol identifier for the staking operation (e.g., ETH).
     * @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}
     */
    consolidate: (mergeStakeAccountsRequest: MergeStakeAccountsRequest, chainDescriptor: ConsolidateChainDescriptorEnum, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Returns all staking positions with core details: amounts, rewards, status, chain, and vault. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary List staking positions
     * @param {ChainDescriptor} [chainDescriptor] Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA). If omitted, positions across all supported chains are returned.
     * @param {string} [vaultAccountId] Filter positions by vault account ID.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getAllDelegations: (chainDescriptor?: ChainDescriptor, vaultAccountId?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Returns chain-specific staking information such as epoch/slot cadence, lockup or unbonding periods, fee/reward mechanics, and other operational constraints.
     * @summary Get chain-level staking parameters
     * @param {ChainDescriptor} chainDescriptor Protocol identifier for the chain info staking operation (e.g., ETH/MATIC/SOL).
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getChainInfo: (chainDescriptor: ChainDescriptor, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Returns an alphabetical list of blockchains supported for staking by the current workspace context. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary List supported staking chains
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getChains: (options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Returns full details for a single staking position: amounts, rewards, status, chain, and vault.
     * @summary Get position details
     * @param {string} id Unique identifier of the staking position.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getDelegationById: (id: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Returns staking positions with core details: amounts, rewards, status, chain, and vault. It supports cursor-based pagination for efficient data retrieval. This endpoint always returns a paginated response with {data, next} structure. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary List staking positions (Paginated)
     * @param {number} pageSize Number of results per page. When provided, the response returns a paginated object with {data, next}. If omitted, all results are returned as an array.
     * @param {ChainDescriptor} [chainDescriptor] Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA). If omitted, positions across all supported chains are returned.
     * @param {string} [vaultAccountId] Filter positions by Fireblocks vault account ID. If omitted, positions across all vault accounts are returned.
     * @param {string} [pageCursor] Cursor for the next page of results. Use the value from the \&#39;next\&#39; field in the previous response.
     * @param {GetPositionsOrderEnum} [order] ASC / DESC ordering (default DESC)
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getPositions: (pageSize: number, chainDescriptor?: ChainDescriptor, vaultAccountId?: string, pageCursor?: string, order?: GetPositionsOrderEnum, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Returns all available staking providers with metadata such as name, ID, and supported chains. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary List staking providers
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getProviders: (options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Returns an aggregated cross-vault summary: active/inactive counts, total staked, and total rewards per chain.
     * @summary Get positions summary
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getSummary: (options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Returns per-vault aggregates: status breakdown, total staked, and total rewards per chain.
     * @summary Get positions summary by vault
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getSummaryByVault: (options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Merges the source stake account into the destination, consolidating the balance into the destination and closing the source account once complete. Both accounts must be from the same validator provider and of same vault account.. Supported chains: Solana (SOL). Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Merge staking positions
     * @param {MergeStakeAccountsRequest} mergeStakeAccountsRequest
     * @param {MergeStakeAccountsChainDescriptorEnum} chainDescriptor Protocol identifier for the merge staking operation (e.g., SOL).
     * @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}
     */
    mergeStakeAccounts: (mergeStakeAccountsRequest: MergeStakeAccountsRequest, chainDescriptor: MergeStakeAccountsChainDescriptorEnum, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Splits a staking position by creating a new stake account with the requested amount, while keeping the original account with the remaining balance. Supported chains: Solana (SOL).
     * @summary Split a staking position
     * @param {SplitRequest} splitRequest
     * @param {SplitChainDescriptorEnum} chainDescriptor Protocol identifier for the staking operation (e.g., SOL).
     * @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}
     */
    split: (splitRequest: SplitRequest, chainDescriptor: SplitChainDescriptorEnum, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Creates a new staking position and returns its unique ID. For Ethereum compounding validator (EIP-7251): when the \'id\' of an existing compounding validator position is provided, adds to that position; otherwise creates a new position. For Ethereum legacy validator: creates a new position regardless of existing delegations. For Cosmos chains and Ethereum liquid staking (Lido): automatically add to existing positions for the same validator provider and same vault account if one exists, otherwise create a new position. For Solana and Polygon (MATIC/POL): always create new positions regardless of existing delegations.
     * @summary Initiate or add to existing stake
     * @param {StakeRequest} stakeRequest
     * @param {ChainDescriptor} chainDescriptor Protocol identifier for the stake staking operation (e.g., ATOM_COS/AXL/CELESTIA).
     * @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}
     */
    stake: (stakeRequest: StakeRequest, chainDescriptor: ChainDescriptor, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Submits a chain-specific unstake request.
     * @summary Initiate unstake
     * @param {UnstakeRequest} unstakeRequest
     * @param {ChainDescriptor} chainDescriptor Protocol identifier for the unstake staking operation (e.g., SOL/SOL_TEST/MATIC).
     * @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}
     */
    unstake: (unstakeRequest: UnstakeRequest, chainDescriptor: ChainDescriptor, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Withdraws funds that have completed the unbonding period. Typically requires the position to be deactivated first (unstake → unbond → withdraw). Amount and timing vary by chain protocol.  Partial withdrawal is supported for ETH compounding validators (EIP-7251/Pectra) and Cosmos chains via the optional \'amount\' field. For ETH compounding validators, the remaining balance must be at least 32 ETH after the withdrawal. For all other chains, omitting \'amount\' withdraws the entire available balance.
     * @summary Withdraw staked funds
     * @param {WithdrawRequest} withdrawRequest
     * @param {ChainDescriptor} chainDescriptor Protocol identifier for the withdraw staking operation (e.g., ATOM_COS/ETH/STETH_ETH).
     * @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}
     */
    withdraw: (withdrawRequest: WithdrawRequest, chainDescriptor: ChainDescriptor, idempotencyKey?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * StakingApi - functional programming interface
 * @export
 */
export declare const StakingApiFp: (configuration?: Configuration) => {
    /**
     * Approves the provider\'s terms of service. Must be called once before performing any staking operation with this provider.
     * @summary Approve provider terms of service
     * @param {StakingProvider} providerId Unique identifier of the staking provider.
     * @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}
     */
    approveTermsOfServiceByProviderId(providerId: StakingProvider, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     * Claims available staking rewards for the specified chain and vault. Supported chains: Solana and Polygon (POL/Matic). Behavior depends on protocol reward distribution.
     * @summary Claim accrued rewards
     * @param {ClaimRewardsRequest} claimRewardsRequest
     * @param {ClaimRewardsChainDescriptorEnum} chainDescriptor Protocol identifier for the claim rewards staking operation (e.g., POL/MATIC/SOL).
     * @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}
     */
    claimRewards(claimRewardsRequest: ClaimRewardsRequest, chainDescriptor: ClaimRewardsChainDescriptorEnum, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     * Consolidates the source staking position into the destination, merging the balance into the destination and closing the source position once complete. Both positions must be from the same vault account (i.e. same withdrawal credentials).  On chain, this translates into a consolidation transaction, where the  source validator is consolidated into the destination validator.  Supported chains: Ethereum (ETH) only. Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor. **Note:** This endpoint is currently in beta and might be subject to changes.
     * @summary Consolidate staking positions (ETH validator consolidation)
     * @param {MergeStakeAccountsRequest} mergeStakeAccountsRequest
     * @param {ConsolidateChainDescriptorEnum} chainDescriptor Protocol identifier for the staking operation (e.g., ETH).
     * @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}
     */
    consolidate(mergeStakeAccountsRequest: MergeStakeAccountsRequest, chainDescriptor: ConsolidateChainDescriptorEnum, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MergeStakeAccountsResponse>>;
    /**
     * Returns all staking positions with core details: amounts, rewards, status, chain, and vault. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary List staking positions
     * @param {ChainDescriptor} [chainDescriptor] Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA). If omitted, positions across all supported chains are returned.
     * @param {string} [vaultAccountId] Filter positions by vault account ID.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getAllDelegations(chainDescriptor?: ChainDescriptor, vaultAccountId?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<StakingGetAllDelegationsResponse>>;
    /**
     * Returns chain-specific staking information such as epoch/slot cadence, lockup or unbonding periods, fee/reward mechanics, and other operational constraints.
     * @summary Get chain-level staking parameters
     * @param {ChainDescriptor} chainDescriptor Protocol identifier for the chain info staking operation (e.g., ETH/MATIC/SOL).
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getChainInfo(chainDescriptor: ChainDescriptor, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ChainInfoResponse>>;
    /**
     * Returns an alphabetical list of blockchains supported for staking by the current workspace context. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary List supported staking chains
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getChains(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<StakingGetChainsResponse>>;
    /**
     * Returns full details for a single staking position: amounts, rewards, status, chain, and vault.
     * @summary Get position details
     * @param {string} id Unique identifier of the staking position.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getDelegationById(id: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Delegation>>;
    /**
     * Returns staking positions with core details: amounts, rewards, status, chain, and vault. It supports cursor-based pagination for efficient data retrieval. This endpoint always returns a paginated response with {data, next} structure. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary List staking positions (Paginated)
     * @param {number} pageSize Number of results per page. When provided, the response returns a paginated object with {data, next}. If omitted, all results are returned as an array.
     * @param {ChainDescriptor} [chainDescriptor] Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA). If omitted, positions across all supported chains are returned.
     * @param {string} [vaultAccountId] Filter positions by Fireblocks vault account ID. If omitted, positions across all vault accounts are returned.
     * @param {string} [pageCursor] Cursor for the next page of results. Use the value from the \&#39;next\&#39; field in the previous response.
     * @param {GetPositionsOrderEnum} [order] ASC / DESC ordering (default DESC)
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getPositions(pageSize: number, chainDescriptor?: ChainDescriptor, vaultAccountId?: string, pageCursor?: string, order?: GetPositionsOrderEnum, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<StakingPositionsPaginatedResponse>>;
    /**
     * Returns all available staking providers with metadata such as name, ID, and supported chains. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary List staking providers
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getProviders(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<StakingGetProvidersResponse>>;
    /**
     * Returns an aggregated cross-vault summary: active/inactive counts, total staked, and total rewards per chain.
     * @summary Get positions summary
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getSummary(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DelegationSummary>>;
    /**
     * Returns per-vault aggregates: status breakdown, total staked, and total rewards per chain.
     * @summary Get positions summary by vault
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getSummaryByVault(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<StakingGetSummaryByVaultResponse>>;
    /**
     * Merges the source stake account into the destination, consolidating the balance into the destination and closing the source account once complete. Both accounts must be from the same validator provider and of same vault account.. Supported chains: Solana (SOL). Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Merge staking positions
     * @param {MergeStakeAccountsRequest} mergeStakeAccountsRequest
     * @param {MergeStakeAccountsChainDescriptorEnum} chainDescriptor Protocol identifier for the merge staking operation (e.g., SOL).
     * @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}
     */
    mergeStakeAccounts(mergeStakeAccountsRequest: MergeStakeAccountsRequest, chainDescriptor: MergeStakeAccountsChainDescriptorEnum, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MergeStakeAccountsResponse>>;
    /**
     * Splits a staking position by creating a new stake account with the requested amount, while keeping the original account with the remaining balance. Supported chains: Solana (SOL).
     * @summary Split a staking position
     * @param {SplitRequest} splitRequest
     * @param {SplitChainDescriptorEnum} chainDescriptor Protocol identifier for the staking operation (e.g., SOL).
     * @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}
     */
    split(splitRequest: SplitRequest, chainDescriptor: SplitChainDescriptorEnum, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SplitResponse>>;
    /**
     * Creates a new staking position and returns its unique ID. For Ethereum compounding validator (EIP-7251): when the \'id\' of an existing compounding validator position is provided, adds to that position; otherwise creates a new position. For Ethereum legacy validator: creates a new position regardless of existing delegations. For Cosmos chains and Ethereum liquid staking (Lido): automatically add to existing positions for the same validator provider and same vault account if one exists, otherwise create a new position. For Solana and Polygon (MATIC/POL): always create new positions regardless of existing delegations.
     * @summary Initiate or add to existing stake
     * @param {StakeRequest} stakeRequest
     * @param {ChainDescriptor} chainDescriptor Protocol identifier for the stake staking operation (e.g., ATOM_COS/AXL/CELESTIA).
     * @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}
     */
    stake(stakeRequest: StakeRequest, chainDescriptor: ChainDescriptor, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<StakeResponse>>;
    /**
     * Submits a chain-specific unstake request.
     * @summary Initiate unstake
     * @param {UnstakeRequest} unstakeRequest
     * @param {ChainDescriptor} chainDescriptor Protocol identifier for the unstake staking operation (e.g., SOL/SOL_TEST/MATIC).
     * @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}
     */
    unstake(unstakeRequest: UnstakeRequest, chainDescriptor: ChainDescriptor, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     * Withdraws funds that have completed the unbonding period. Typically requires the position to be deactivated first (unstake → unbond → withdraw). Amount and timing vary by chain protocol.  Partial withdrawal is supported for ETH compounding validators (EIP-7251/Pectra) and Cosmos chains via the optional \'amount\' field. For ETH compounding validators, the remaining balance must be at least 32 ETH after the withdrawal. For all other chains, omitting \'amount\' withdraws the entire available balance.
     * @summary Withdraw staked funds
     * @param {WithdrawRequest} withdrawRequest
     * @param {ChainDescriptor} chainDescriptor Protocol identifier for the withdraw staking operation (e.g., ATOM_COS/ETH/STETH_ETH).
     * @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}
     */
    withdraw(withdrawRequest: WithdrawRequest, chainDescriptor: ChainDescriptor, idempotencyKey?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
};
/**
 * StakingApi - factory interface
 * @export
 */
export declare const StakingApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     * Approves the provider\'s terms of service. Must be called once before performing any staking operation with this provider.
     * @summary Approve provider terms of service
     * @param {StakingApiApproveTermsOfServiceByProviderIdRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    approveTermsOfServiceByProviderId(requestParameters: StakingApiApproveTermsOfServiceByProviderIdRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * Claims available staking rewards for the specified chain and vault. Supported chains: Solana and Polygon (POL/Matic). Behavior depends on protocol reward distribution.
     * @summary Claim accrued rewards
     * @param {StakingApiClaimRewardsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    claimRewards(requestParameters: StakingApiClaimRewardsRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * Consolidates the source staking position into the destination, merging the balance into the destination and closing the source position once complete. Both positions must be from the same vault account (i.e. same withdrawal credentials).  On chain, this translates into a consolidation transaction, where the  source validator is consolidated into the destination validator.  Supported chains: Ethereum (ETH) only. Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor. **Note:** This endpoint is currently in beta and might be subject to changes.
     * @summary Consolidate staking positions (ETH validator consolidation)
     * @param {StakingApiConsolidateRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    consolidate(requestParameters: StakingApiConsolidateRequest, options?: RawAxiosRequestConfig): AxiosPromise<MergeStakeAccountsResponse>;
    /**
     * Returns all staking positions with core details: amounts, rewards, status, chain, and vault. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary List staking positions
     * @param {StakingApiGetAllDelegationsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getAllDelegations(requestParameters?: StakingApiGetAllDelegationsRequest, options?: RawAxiosRequestConfig): AxiosPromise<StakingGetAllDelegationsResponse>;
    /**
     * Returns chain-specific staking information such as epoch/slot cadence, lockup or unbonding periods, fee/reward mechanics, and other operational constraints.
     * @summary Get chain-level staking parameters
     * @param {StakingApiGetChainInfoRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getChainInfo(requestParameters: StakingApiGetChainInfoRequest, options?: RawAxiosRequestConfig): AxiosPromise<ChainInfoResponse>;
    /**
     * Returns an alphabetical list of blockchains supported for staking by the current workspace context. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary List supported staking chains
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getChains(options?: RawAxiosRequestConfig): AxiosPromise<StakingGetChainsResponse>;
    /**
     * Returns full details for a single staking position: amounts, rewards, status, chain, and vault.
     * @summary Get position details
     * @param {StakingApiGetDelegationByIdRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getDelegationById(requestParameters: StakingApiGetDelegationByIdRequest, options?: RawAxiosRequestConfig): AxiosPromise<Delegation>;
    /**
     * Returns staking positions with core details: amounts, rewards, status, chain, and vault. It supports cursor-based pagination for efficient data retrieval. This endpoint always returns a paginated response with {data, next} structure. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary List staking positions (Paginated)
     * @param {StakingApiGetPositionsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getPositions(requestParameters: StakingApiGetPositionsRequest, options?: RawAxiosRequestConfig): AxiosPromise<StakingPositionsPaginatedResponse>;
    /**
     * Returns all available staking providers with metadata such as name, ID, and supported chains. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary List staking providers
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getProviders(options?: RawAxiosRequestConfig): AxiosPromise<StakingGetProvidersResponse>;
    /**
     * Returns an aggregated cross-vault summary: active/inactive counts, total staked, and total rewards per chain.
     * @summary Get positions summary
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getSummary(options?: RawAxiosRequestConfig): AxiosPromise<DelegationSummary>;
    /**
     * Returns per-vault aggregates: status breakdown, total staked, and total rewards per chain.
     * @summary Get positions summary by vault
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getSummaryByVault(options?: RawAxiosRequestConfig): AxiosPromise<StakingGetSummaryByVaultResponse>;
    /**
     * Merges the source stake account into the destination, consolidating the balance into the destination and closing the source account once complete. Both accounts must be from the same validator provider and of same vault account.. Supported chains: Solana (SOL). Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Merge staking positions
     * @param {StakingApiMergeStakeAccountsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    mergeStakeAccounts(requestParameters: StakingApiMergeStakeAccountsRequest, options?: RawAxiosRequestConfig): AxiosPromise<MergeStakeAccountsResponse>;
    /**
     * Splits a staking position by creating a new stake account with the requested amount, while keeping the original account with the remaining balance. Supported chains: Solana (SOL).
     * @summary Split a staking position
     * @param {StakingApiSplitRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    split(requestParameters: StakingApiSplitRequest, options?: RawAxiosRequestConfig): AxiosPromise<SplitResponse>;
    /**
     * Creates a new staking position and returns its unique ID. For Ethereum compounding validator (EIP-7251): when the \'id\' of an existing compounding validator position is provided, adds to that position; otherwise creates a new position. For Ethereum legacy validator: creates a new position regardless of existing delegations. For Cosmos chains and Ethereum liquid staking (Lido): automatically add to existing positions for the same validator provider and same vault account if one exists, otherwise create a new position. For Solana and Polygon (MATIC/POL): always create new positions regardless of existing delegations.
     * @summary Initiate or add to existing stake
     * @param {StakingApiStakeRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    stake(requestParameters: StakingApiStakeRequest, options?: RawAxiosRequestConfig): AxiosPromise<StakeResponse>;
    /**
     * Submits a chain-specific unstake request.
     * @summary Initiate unstake
     * @param {StakingApiUnstakeRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    unstake(requestParameters: StakingApiUnstakeRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
    /**
     * Withdraws funds that have completed the unbonding period. Typically requires the position to be deactivated first (unstake → unbond → withdraw). Amount and timing vary by chain protocol.  Partial withdrawal is supported for ETH compounding validators (EIP-7251/Pectra) and Cosmos chains via the optional \'amount\' field. For ETH compounding validators, the remaining balance must be at least 32 ETH after the withdrawal. For all other chains, omitting \'amount\' withdraws the entire available balance.
     * @summary Withdraw staked funds
     * @param {StakingApiWithdrawRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    withdraw(requestParameters: StakingApiWithdrawRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
};
/**
 * Request parameters for approveTermsOfServiceByProviderId operation in StakingApi.
 * @export
 * @interface StakingApiApproveTermsOfServiceByProviderIdRequest
 */
export interface StakingApiApproveTermsOfServiceByProviderIdRequest {
    /**
     * Unique identifier of the staking provider.
     * @type {StakingProvider}
     * @memberof StakingApiApproveTermsOfServiceByProviderId
     */
    readonly providerId: StakingProvider;
    /**
     * 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 StakingApiApproveTermsOfServiceByProviderId
     */
    readonly idempotencyKey?: string;
}
/**
 * Request parameters for claimRewards operation in StakingApi.
 * @export
 * @interface StakingApiClaimRewardsRequest
 */
export interface StakingApiClaimRewardsRequest {
    /**
     *
     * @type {ClaimRewardsRequest}
     * @memberof StakingApiClaimRewards
     */
    readonly claimRewardsRequest: ClaimRewardsRequest;
    /**
     * Protocol identifier for the claim rewards staking operation (e.g., POL/MATIC/SOL).
     * @type {'SOL' | 'SOL_TEST' | 'MATIC' | 'POL' | 'POL_TEST'}
     * @memberof StakingApiClaimRewards
     */
    readonly chainDescriptor: ClaimRewardsChainDescriptorEnum;
    /**
     * 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 StakingApiClaimRewards
     */
    readonly idempotencyKey?: string;
}
/**
 * Request parameters for consolidate operation in StakingApi.
 * @export
 * @interface StakingApiConsolidateRequest
 */
export interface StakingApiConsolidateRequest {
    /**
     *
     * @type {MergeStakeAccountsRequest}
     * @memberof StakingApiConsolidate
     */
    readonly mergeStakeAccountsRequest: MergeStakeAccountsRequest;
    /**
     * Protocol identifier for the staking operation (e.g., ETH).
     * @type {'ETH' | 'ETH_TEST6' | 'ETH_TEST_HOODI'}
     * @memberof StakingApiConsolidate
     */
    readonly chainDescriptor: ConsolidateChainDescriptorEnum;
    /**
     * 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 StakingApiConsolidate
     */
    readonly idempotencyKey?: string;
}
/**
 * Request parameters for getAllDelegations operation in StakingApi.
 * @export
 * @interface StakingApiGetAllDelegationsRequest
 */
export interface StakingApiGetAllDelegationsRequest {
    /**
     * Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA). If omitted, positions across all supported chains are returned.
     * @type {ChainDescriptor}
     * @memberof StakingApiGetAllDelegations
     */
    readonly chainDescriptor?: ChainDescriptor;
    /**
     * Filter positions by vault account ID.
     * @type {string}
     * @memberof StakingApiGetAllDelegations
     */
    readonly vaultAccountId?: string;
}
/**
 * Request parameters for getChainInfo operation in StakingApi.
 * @export
 * @interface StakingApiGetChainInfoRequest
 */
export interface StakingApiGetChainInfoRequest {
    /**
     * Protocol identifier for the chain info staking operation (e.g., ETH/MATIC/SOL).
     * @type {ChainDescriptor}
     * @memberof StakingApiGetChainInfo
     */
    readonly chainDescriptor: ChainDescriptor;
}
/**
 * Request parameters for getDelegationById operation in StakingApi.
 * @export
 * @interface StakingApiGetDelegationByIdRequest
 */
export interface StakingApiGetDelegationByIdRequest {
    /**
     * Unique identifier of the staking position.
     * @type {string}
     * @memberof StakingApiGetDelegationById
     */
    readonly id: string;
}
/**
 * Request parameters for getPositions operation in StakingApi.
 * @export
 * @interface StakingApiGetPositionsRequest
 */
export interface StakingApiGetPositionsRequest {
    /**
     * Number of results per page. When provided, the response returns a paginated object with {data, next}. If omitted, all results are returned as an array.
     * @type {number}
     * @memberof StakingApiGetPositions
     */
    readonly pageSize: number;
    /**
     * Protocol identifier to filter positions (e.g., ATOM_COS/AXL/CELESTIA). If omitted, positions across all supported chains are returned.
     * @type {ChainDescriptor}
     * @memberof StakingApiGetPositions
     */
    readonly chainDescriptor?: ChainDescriptor;
    /**
     * Filter positions by Fireblocks vault account ID. If omitted, positions across all vault accounts are returned.
     * @type {string}
     * @memberof StakingApiGetPositions
     */
    readonly vaultAccountId?: string;
    /**
     * Cursor for the next page of results. Use the value from the \&#39;next\&#39; field in the previous response.
     * @type {string}
     * @memberof StakingApiGetPositions
     */
    readonly pageCursor?: string;
    /**
     * ASC / DESC ordering (default DESC)
     * @type {'ASC' | 'DESC'}
     * @memberof StakingApiGetPositions
     */
    readonly order?: GetPositionsOrderEnum;
}
/**
 * Request parameters for mergeStakeAccounts operation in StakingApi.
 * @export
 * @interface StakingApiMergeStakeAccountsRequest
 */
export interface StakingApiMergeStakeAccountsRequest {
    /**
     *
     * @type {MergeStakeAccountsRequest}
     * @memberof StakingApiMergeStakeAccounts
     */
    readonly mergeStakeAccountsRequest: MergeStakeAccountsRequest;
    /**
     * Protocol identifier for the merge staking operation (e.g., SOL).
     * @type {'SOL' | 'SOL_TEST'}
     * @memberof StakingApiMergeStakeAccounts
     */
    readonly chainDescriptor: MergeStakeAccountsChainDescriptorEnum;
    /**
     * 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 StakingApiMergeStakeAccounts
     */
    readonly idempotencyKey?: string;
}
/**
 * Request parameters for split operation in StakingApi.
 * @export
 * @interface StakingApiSplitRequest
 */
export interface StakingApiSplitRequest {
    /**
     *
     * @type {SplitRequest}
     * @memberof StakingApiSplit
     */
    readonly splitRequest: SplitRequest;
    /**
     * Protocol identifier for the staking operation (e.g., SOL).
     * @type {'SOL' | 'SOL_TEST'}
     * @memberof StakingApiSplit
     */
    readonly chainDescriptor: SplitChainDescriptorEnum;
    /**
     * 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 StakingApiSplit
     */
    readonly idempotencyKey?: string;
}
/**
 * Request parameters for stake operation in StakingApi.
 * @export
 * @interface StakingApiStakeRequest
 */
export interface StakingApiStakeRequest {
    /**
     *
     * @type {StakeRequest}
     * @memberof StakingApiStake
     */
    readonly stakeRequest: StakeRequest;
    /**
     * Protocol identifier for the stake staking operation (e.g., ATOM_COS/AXL/CELESTIA).
     * @type {ChainDescriptor}
     * @memberof StakingApiStake
     */
    readonly chainDescriptor: ChainDescriptor;
    /**
     * 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 StakingApiStake
     */
    readonly idempotencyKey?: string;
}
/**
 * Request parameters for unstake operation in StakingApi.
 * @export
 * @interface StakingApiUnstakeRequest
 */
export interface StakingApiUnstakeRequest {
    /**
     *
     * @type {UnstakeRequest}
     * @memberof StakingApiUnstake
     */
    readonly unstakeRequest: UnstakeRequest;
    /**
     * Protocol identifier for the unstake staking operation (e.g., SOL/SOL_TEST/MATIC).
     * @type {ChainDescriptor}
     * @memberof StakingApiUnstake
     */
    readonly chainDescriptor: ChainDescriptor;
    /**
     * 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 StakingApiUnstake
     */
    readonly idempotencyKey?: string;
}
/**
 * Request parameters for withdraw operation in StakingApi.
 * @export
 * @interface StakingApiWithdrawRequest
 */
export interface StakingApiWithdrawRequest {
    /**
     *
     * @type {WithdrawRequest}
     * @memberof StakingApiWithdraw
     */
    readonly withdrawRequest: WithdrawRequest;
    /**
     * Protocol identifier for the withdraw staking operation (e.g., ATOM_COS/ETH/STETH_ETH).
     * @type {ChainDescriptor}
     * @memberof StakingApiWithdraw
     */
    readonly chainDescriptor: ChainDescriptor;
    /**
     * 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 StakingApiWithdraw
     */
    readonly idempotencyKey?: string;
}
/**
 * StakingApi - object-oriented interface
 * @export
 * @class StakingApi
 * @extends {BaseAPI}
 */
export declare class StakingApi extends BaseAPI {
    /**
     * Approves the provider\'s terms of service. Must be called once before performing any staking operation with this provider.
     * @summary Approve provider terms of service
     * @param {StakingApiApproveTermsOfServiceByProviderIdRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StakingApi
     */
    approveTermsOfServiceByProviderId(requestParameters: StakingApiApproveTermsOfServiceByProviderIdRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<void>>;
    /**
     * Claims available staking rewards for the specified chain and vault. Supported chains: Solana and Polygon (POL/Matic). Behavior depends on protocol reward distribution.
     * @summary Claim accrued rewards
     * @param {StakingApiClaimRewardsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StakingApi
     */
    claimRewards(requestParameters: StakingApiClaimRewardsRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<void>>;
    /**
     * Consolidates the source staking position into the destination, merging the balance into the destination and closing the source position once complete. Both positions must be from the same vault account (i.e. same withdrawal credentials).  On chain, this translates into a consolidation transaction, where the  source validator is consolidated into the destination validator.  Supported chains: Ethereum (ETH) only. Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor. **Note:** This endpoint is currently in beta and might be subject to changes.
     * @summary Consolidate staking positions (ETH validator consolidation)
     * @param {StakingApiConsolidateRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StakingApi
     */
    consolidate(requestParameters: StakingApiConsolidateRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<MergeStakeAccountsResponse>>;
    /**
     * Returns all staking positions with core details: amounts, rewards, status, chain, and vault. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary List staking positions
     * @param {StakingApiGetAllDelegationsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StakingApi
     */
    getAllDelegations(requestParameters?: StakingApiGetAllDelegationsRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<StakingGetAllDelegationsResponse>>;
    /**
     * Returns chain-specific staking information such as epoch/slot cadence, lockup or unbonding periods, fee/reward mechanics, and other operational constraints.
     * @summary Get chain-level staking parameters
     * @param {StakingApiGetChainInfoRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StakingApi
     */
    getChainInfo(requestParameters: StakingApiGetChainInfoRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<ChainInfoResponse>>;
    /**
     * Returns an alphabetical list of blockchains supported for staking by the current workspace context. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary List supported staking chains
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StakingApi
     */
    getChains(): Promise<import("../response/fireblocksResponse").FireblocksResponse<StakingGetChainsResponse>>;
    /**
     * Returns full details for a single staking position: amounts, rewards, status, chain, and vault.
     * @summary Get position details
     * @param {StakingApiGetDelegationByIdRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StakingApi
     */
    getDelegationById(requestParameters: StakingApiGetDelegationByIdRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<Delegation>>;
    /**
     * Returns staking positions with core details: amounts, rewards, status, chain, and vault. It supports cursor-based pagination for efficient data retrieval. This endpoint always returns a paginated response with {data, next} structure. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary List staking positions (Paginated)
     * @param {StakingApiGetPositionsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StakingApi
     */
    getPositions(requestParameters: StakingApiGetPositionsRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<StakingPositionsPaginatedResponse>>;
    /**
     * Returns all available staking providers with metadata such as name, ID, and supported chains. Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary List staking providers
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StakingApi
     */
    getProviders(): Promise<import("../response/fireblocksResponse").FireblocksResponse<StakingGetProvidersResponse>>;
    /**
     * Returns an aggregated cross-vault summary: active/inactive counts, total staked, and total rewards per chain.
     * @summary Get positions summary
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StakingApi
     */
    getSummary(): Promise<import("../response/fireblocksResponse").FireblocksResponse<DelegationSummary>>;
    /**
     * Returns per-vault aggregates: status breakdown, total staked, and total rewards per chain.
     * @summary Get positions summary by vault
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StakingApi
     */
    getSummaryByVault(): Promise<import("../response/fireblocksResponse").FireblocksResponse<StakingGetSummaryByVaultResponse>>;
    /**
     * Merges the source stake account into the destination, consolidating the balance into the destination and closing the source account once complete. Both accounts must be from the same validator provider and of same vault account.. Supported chains: Solana (SOL). Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, Editor.
     * @summary Merge staking positions
     * @param {StakingApiMergeStakeAccountsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StakingApi
     */
    mergeStakeAccounts(requestParameters: StakingApiMergeStakeAccountsRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<MergeStakeAccountsResponse>>;
    /**
     * Splits a staking position by creating a new stake account with the requested amount, while keeping the original account with the remaining balance. Supported chains: Solana (SOL).
     * @summary Split a staking position
     * @param {StakingApiSplitRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StakingApi
     */
    split(requestParameters: StakingApiSplitRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<SplitResponse>>;
    /**
     * Creates a new staking position and returns its unique ID. For Ethereum compounding validator (EIP-7251): when the \'id\' of an existing compounding validator position is provided, adds to that position; otherwise creates a new position. For Ethereum legacy validator: creates a new position regardless of existing delegations. For Cosmos chains and Ethereum liquid staking (Lido): automatically add to existing positions for the same validator provider and same vault account if one exists, otherwise create a new position. For Solana and Polygon (MATIC/POL): always create new positions regardless of existing delegations.
     * @summary Initiate or add to existing stake
     * @param {StakingApiStakeRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StakingApi
     */
    stake(requestParameters: StakingApiStakeRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<StakeResponse>>;
    /**
     * Submits a chain-specific unstake request.
     * @summary Initiate unstake
     * @param {StakingApiUnstakeRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StakingApi
     */
    unstake(requestParameters: StakingApiUnstakeRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<void>>;
    /**
     * Withdraws funds that have completed the unbonding period. Typically requires the position to be deactivated first (unstake → unbond → withdraw). Amount and timing vary by chain protocol.  Partial withdrawal is supported for ETH compounding validators (EIP-7251/Pectra) and Cosmos chains via the optional \'amount\' field. For ETH compounding validators, the remaining balance must be at least 32 ETH after the withdrawal. For all other chains, omitting \'amount\' withdraws the entire available balance.
     * @summary Withdraw staked funds
     * @param {StakingApiWithdrawRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof StakingApi
     */
    withdraw(requestParameters: StakingApiWithdrawRequest): Promise<import("../response/fireblocksResponse").FireblocksResponse<void>>;
}
/**
 * @export
 */
export declare const ClaimRewardsChainDescriptorEnum: {
    readonly Sol: "SOL";
    readonly SolTest: "SOL_TEST";
    readonly Matic: "MATIC";
    readonly Pol: "POL";
    readonly PolTest: "POL_TEST";
};
export type ClaimRewardsChainDescriptorEnum = typeof ClaimRewardsChainDescriptorEnum[keyof typeof ClaimRewardsChainDescriptorEnum];
/**
 * @export
 */
export declare const ConsolidateChainDescriptorEnum: {
    readonly Eth: "ETH";
    readonly EthTest6: "ETH_TEST6";
    readonly EthTestHoodi: "ETH_TEST_HOODI";
};
export type ConsolidateChainDescriptorEnum = typeof ConsolidateChainDescriptorEnum[keyof typeof ConsolidateChainDescriptorEnum];
/**
 * @export
 */
export declare const GetPositionsOrderEnum: {
    readonly Asc: "ASC";
    readonly Desc: "DESC";
};
export type GetPositionsOrderEnum = typeof GetPositionsOrderEnum[keyof typeof GetPositionsOrderEnum];
/**
 * @export
 */
export declare const MergeStakeAccountsChainDescriptorEnum: {
    readonly Sol: "SOL";
    readonly SolTest: "SOL_TEST";
};
export type MergeStakeAccountsChainDescriptorEnum = typeof MergeStakeAccountsChainDescriptorEnum[keyof typeof MergeStakeAccountsChainDescriptorEnum];
/**
 * @export
 */
export declare const SplitChainDescriptorEnum: {
    readonly Sol: "SOL";
    readonly SolTest: "SOL_TEST";
};
export type SplitChainDescriptorEnum = typeof SplitChainDescriptorEnum[keyof typeof SplitChainDescriptorEnum];
