/**
 * 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 { DelegationBlockchainPositionInfo } from './delegation-blockchain-position-info';
import { RelatedRequest } from './related-request';
import { RelatedTransaction } from './related-transaction';
import { StakingProvider } from './staking-provider';
/**
 *
 * @export
 * @interface Delegation
 */
export interface Delegation {
    /**
     * The unique identifier of the staking position
     * @type {string}
     * @memberof Delegation
     */
    'id': string;
    /**
     * The source vault account to stake from
     * @type {string}
     * @memberof Delegation
     */
    'vaultAccountId': string;
    /**
     * The destination validator address name
     * @type {string}
     * @memberof Delegation
     */
    'validatorName': string;
    /**
     * The destination validator provider name
     * @type {string}
     * @memberof Delegation
     */
    'providerName': string;
    /**
     * The protocol identifier (e.g. \"ETH\"/ \"SOL\") to use
     * @type {string}
     * @memberof Delegation
     */
    'chainDescriptor': string;
    /**
     * Total value of the staking position. For Solana, Lido and Ethereum (compounding validator): includes the original stake plus accumulated rewards. For MATIC, Cosmos and Ethereum (legacy validator): refers to the amount currently staked.
     * @type {string}
     * @memberof Delegation
     */
    'amount': string;
    /**
     * The amount staked in the position, measured in the staked asset unit.
     * @type {string}
     * @memberof Delegation
     */
    'rewardsAmount': string;
    /**
     * When was the request made (ISO Date).
     * @type {string}
     * @memberof Delegation
     */
    'dateCreated': string;
    /**
     * When has the position last changed (ISO Date).
     * @type {string}
     * @memberof Delegation
     */
    'dateUpdated': string;
    /**
     * The current status.
     * @type {string}
     * @memberof Delegation
     */
    'status': string;
    /**
     * An array of transaction objects related to this position. Each object includes a \'txId\' representing the transaction ID and a \'completed\' boolean indicating if the transaction was completed.
     * @type {Array<RelatedTransaction>}
     * @memberof Delegation
     */
    'relatedTransactions': Array<RelatedTransaction>;
    /**
     * The destination address of the staking transaction.
     * @type {string}
     * @memberof Delegation
     */
    'validatorAddress': string;
    /**
     *
     * @type {StakingProvider}
     * @memberof Delegation
     */
    'providerId': StakingProvider;
    /**
     * An array of available actions that can be performed. for example, actions like \"unstake\" or \"withdraw\".
     * @type {Array<string>}
     * @memberof Delegation
     */
    'availableActions': Array<string>;
    /**
     * Indicates whether there is an ongoing action for this position related to this request
     * @type {boolean}
     * @memberof Delegation
     */
    'inProgress': boolean;
    /**
     *
     * @type {DelegationBlockchainPositionInfo}
     * @memberof Delegation
     */
    'blockchainPositionInfo': DelegationBlockchainPositionInfo;
    /**
     * The transaction ID of the initial stake position request only. Only present when there is an active initial stake transaction.
     * @type {string}
     * @memberof Delegation
     */
    'inProgressTxId'?: string;
    /**
     *
     * @type {Array<RelatedRequest>}
     * @memberof Delegation
     */
    'relatedRequests'?: Array<RelatedRequest>;
}
