import Big, { BigSource } from "big.js";
import sinon from "sinon";
import { CollateralCurrencyExt, CurrencyExt, DefaultRewardsAPI, DefaultVaultsAPI, VaultExt } from "../../../src";
import { AccountId } from "@polkadot/types/interfaces";
export declare type NominatorVaultAccountIds = {
    nominatorId: AccountId;
    vaultId: AccountId;
};
/**
 * Helper function to mock calls outside of the function backingCollateralProportion
 * @param sinon The sinon sandbox to use for mocking
 * @param vaultsApi The vaults API used to call the method under test
 * @param stubbedRewardsApi The stubbed rewards API (called internally)
 * @param nominatorCollateralStakedAmount The mocked nominator's collateral staked amount
 * @param vaultBackingCollateralAmount The mocked vault's backing collateral amount
 * @param collateralCurrency The collateral currency for the amounts mocked
 * @returns Two mock account IDs, one for the nominator and one for the vault
 */
export declare const prepareBackingCollateralProportionMocks: (sinon: sinon.SinonSandbox, vaultsApi: DefaultVaultsAPI, stubbedRewardsApi: sinon.SinonStubbedInstance<DefaultRewardsAPI>, nominatorCollateralStakedAmount: Big, vaultBackingCollateralAmount: Big, collateralCurrency: CollateralCurrencyExt) => NominatorVaultAccountIds;
/**
 * Construct a mocked AccountId
 * @param someString An identifier to use for the mock account
 * @returns A simplified variation of an AccountId
 */
export declare const createMockAccountId: (someString: string) => AccountId;
/**
 * Mock RewardsAPI.computeCollateralInStakingPool to return a specific collateral amount
 * @param sinon The sinon sandbox to use for mocking
 * @param stubbedRewardsApi A stubbed rewards API to add the mocked bahvior to
 * @param amount The mocked return amount
 * @param currency The currency of the mocked return amount
 */
export declare const mockComputeCollateralInStakingPoolMethod: (sinon: sinon.SinonSandbox, stubbedRewardsApi: sinon.SinonStubbedInstance<DefaultRewardsAPI>, amount: BigSource, currency: CurrencyExt) => void;
/**
 * Create a mock VaultExt instance with only backing collateral amount set
 * @param amount The mocked backing collateral amount
 * @param collateralCurrency The collateral currency for the mocked backing collateral amount
 * @returns A mocked VaultExt instance with only backingCollateral property set
 */
export declare const createMockVaultWithBacking: (amount: BigSource, collateralCurrency: CollateralCurrencyExt) => VaultExt;
/**
 * Mock the return value of VaultsAPI.get
 * @param sinon The sinon sandbox to use for mocking
 * @param vaultsApi The vaultsAPI instance for which to mock .get() methed
 * @param vault The vault to return
 */
export declare const mockVaultsApiGetMethod: (sinon: sinon.SinonSandbox, vaultsApi: DefaultVaultsAPI, vault: VaultExt) => void;
