/**
 * 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 { StakingProvider } from './staking-provider';
/**
 *
 * @export
 * @interface Position
 */
export interface Position {
    /**
     * The unique identifier of the staking position
     * @type {string}
     * @memberof Position
     */
    'id': string;
    /**
     * The source vault account to stake from
     * @type {string}
     * @memberof Position
     */
    'vaultAccountId': string;
    /**
     * The destination validator address name
     * @type {string}
     * @memberof Position
     */
    'validatorName': string;
    /**
     * The destination validator provider name
     * @type {string}
     * @memberof Position
     */
    'providerName': string;
    /**
     * The protocol identifier (e.g. \"ETH\"/ \"SOL\") to use
     * @type {string}
     * @memberof Position
     */
    '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 Position
     */
    'amount': string;
    /**
     * The amount staked in the position, measured in the staked asset unit.
     * @type {string}
     * @memberof Position
     */
    'rewardsAmount': string;
    /**
     * When was the request made (ISO Date).
     * @type {string}
     * @memberof Position
     */
    'dateCreated': string;
    /**
     * When has the position last changed (ISO Date).
     * @type {string}
     * @memberof Position
     */
    'dateUpdated': string;
    /**
     * The current status.
     * @type {string}
     * @memberof Position
     */
    'status': PositionStatusEnum;
    /**
     * The destination address of the staking transaction.
     * @type {string}
     * @memberof Position
     */
    'validatorAddress': string;
    /**
     *
     * @type {StakingProvider}
     * @memberof Position
     */
    'providerId': StakingProvider;
    /**
     * An array of available actions that can be performed. for example, actions like \"UNSTAKE\" or \"WITHDRAW\".
     * @type {Array<string>}
     * @memberof Position
     */
    'availableActions': Array<PositionAvailableActionsEnum>;
    /**
     * Indicates whether there is an ongoing action for this position related to this request
     * @type {boolean}
     * @memberof Position
     */
    'inProgress': boolean;
    /**
     *
     * @type {DelegationBlockchainPositionInfo}
     * @memberof Position
     */
    '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 Position
     */
    'inProgressTxId'?: string;
}
export declare const PositionStatusEnum: {
    readonly Creating: "CREATING";
    readonly Pending: "PENDING";
    readonly Activating: "ACTIVATING";
    readonly Active: "ACTIVE";
    readonly Deactivating: "DEACTIVATING";
    readonly Deactivated: "DEACTIVATED";
    readonly Withdrawing: "WITHDRAWING";
    readonly Withdrawn: "WITHDRAWN";
    readonly Merged: "MERGED";
    readonly Consolidated: "CONSOLIDATED";
    readonly Canceled: "CANCELED";
    readonly Failed: "FAILED";
};
export type PositionStatusEnum = typeof PositionStatusEnum[keyof typeof PositionStatusEnum];
export declare const PositionAvailableActionsEnum: {
    readonly Unstake: "UNSTAKE";
    readonly Withdraw: "WITHDRAW";
    readonly AddToStake: "ADD_TO_STAKE";
    readonly Split: "SPLIT";
    readonly Merge: "MERGE";
    readonly ClaimRewards: "CLAIM_REWARDS";
    readonly Consolidate: "CONSOLIDATE";
};
export type PositionAvailableActionsEnum = typeof PositionAvailableActionsEnum[keyof typeof PositionAvailableActionsEnum];
