/**
 * 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 { FeeLevel } from './fee-level';
import { StakingProvider } from './staking-provider';
/**
 *
 * @export
 * @interface StakeRequest
 */
export interface StakeRequest {
    /**
     * The Fireblocks vault account ID that will source the funds for staking.
     * @type {string}
     * @memberof StakeRequest
     */
    'vaultAccountId': string;
    /**
     *
     * @type {StakingProvider}
     * @memberof StakeRequest
     */
    'providerId': StakingProvider;
    /**
     * The amount of tokens to stake. The amount may be truncated to match the chain\'s decimal precision requirements.
     * @type {string}
     * @memberof StakeRequest
     */
    'stakeAmount': string;
    /**
     * Optional note or comment to associate with the stake transaction. This note will be included in transaction records and can be used for tracking or audit purposes.
     * @type {string}
     * @memberof StakeRequest
     */
    'txNote'?: string;
    /**
     * Optional transaction fee. Controls the priority and cost of the blockchain transaction. Only one of \'fee\' or \'feeLevel\' should be provided; if both are specified, \'feeLevel\' takes precedence.
     * @type {string}
     * @memberof StakeRequest
     */
    'fee'?: string;
    /**
     *
     * @type {FeeLevel}
     * @memberof StakeRequest
     */
    'feeLevel'?: FeeLevel;
    /**
     * Protocol identifier for the staking operation
     * @type {string}
     * @memberof StakeRequest
     */
    'chainDescriptor'?: string;
    /**
     * Applies only to Ethereum compounding validator staking (Pectra/EIP-7251). The ID of an existing staking position to add additional stake to. When provided, adds stake to the specified position instead of creating a new one. Requires \'isCompoundingValidator\' to be true.
     * @type {string}
     * @memberof StakeRequest
     */
    'id'?: string;
    /**
     * Applies only to Ethereum staking. Indicates whether to use a compounding validator (see Pectra/EIP-7251). When true, creates a position that supports adding additional stake via the \'id\' parameter. If not provided, defaults to false and a legacy (non-compounding) validator will be used.
     * @type {boolean}
     * @memberof StakeRequest
     */
    'isCompoundingValidator'?: boolean;
}
