import type { Enum, Struct, Text, u32 } from '@polkadot/types-codec';
import type { ITuple } from '@polkadot/types-codec/types';
import type { AccountId, FixedU128, H256, Permill } from '@polkadot/types/interfaces/runtime';
/** @name BalanceWrapper */
export interface BalanceWrapper extends Struct {
    readonly amount: Text;
}
/** @name CurrencyId */
export interface CurrencyId extends Enum {
    readonly isToken: boolean;
    readonly asToken: TokenSymbol;
    readonly isForeignAsset: boolean;
    readonly asForeignAsset: ForeignAssetId;
    readonly isLendToken: boolean;
    readonly asLendToken: LendTokenId;
    readonly isLpToken: boolean;
    readonly asLpToken: ITuple<[LpToken, LpToken]>;
    readonly isStableLpToken: boolean;
    readonly asStableLpToken: StablePoolId;
    readonly type: 'Token' | 'ForeignAsset' | 'LendToken' | 'LpToken' | 'StableLpToken';
}
/** @name ForeignAssetId */
export interface ForeignAssetId extends u32 {
}
/** @name FundAccountJsonRpcRequest */
export interface FundAccountJsonRpcRequest extends Struct {
    readonly account_id: AccountId;
    readonly currency_id: InterbtcPrimitivesCurrencyId;
}
/** @name H256Le */
export interface H256Le extends H256 {
}
/** @name InterbtcForeignAssetId */
export interface InterbtcForeignAssetId extends u32 {
}
/** @name InterbtcLendTokenId */
export interface InterbtcLendTokenId extends u32 {
}
/** @name InterbtcLpToken */
export interface InterbtcLpToken extends Enum {
    readonly isToken: boolean;
    readonly asToken: InterbtcPrimitivesTokenSymbol;
    readonly isForeignAsset: boolean;
    readonly asForeignAsset: InterbtcForeignAssetId;
    readonly isStableLpToken: boolean;
    readonly asStableLpToken: InterbtcStablePoolId;
    readonly type: 'Token' | 'ForeignAsset' | 'StableLpToken';
}
/** @name InterbtcPrimitivesCurrencyId */
export interface InterbtcPrimitivesCurrencyId extends Enum {
    readonly isToken: boolean;
    readonly asToken: InterbtcPrimitivesTokenSymbol;
    readonly isForeignAsset: boolean;
    readonly asForeignAsset: InterbtcForeignAssetId;
    readonly isLendToken: boolean;
    readonly asLendToken: InterbtcLendTokenId;
    readonly isLpToken: boolean;
    readonly asLpToken: ITuple<[InterbtcLpToken, InterbtcLpToken]>;
    readonly isStableLpToken: boolean;
    readonly asStableLpToken: InterbtcStablePoolId;
    readonly type: 'Token' | 'ForeignAsset' | 'LendToken' | 'LpToken' | 'StableLpToken';
}
/** @name InterbtcPrimitivesTokenSymbol */
export interface InterbtcPrimitivesTokenSymbol extends Enum {
    readonly isDot: boolean;
    readonly isIbtc: boolean;
    readonly isIntr: boolean;
    readonly isKsm: boolean;
    readonly isKbtc: boolean;
    readonly isKint: boolean;
    readonly type: 'Dot' | 'Ibtc' | 'Intr' | 'Ksm' | 'Kbtc' | 'Kint';
}
/** @name InterbtcStablePoolId */
export interface InterbtcStablePoolId extends u32 {
}
/** @name LendTokenId */
export interface LendTokenId extends u32 {
}
/** @name Liquidity */
export interface Liquidity extends FixedU128 {
}
/** @name LpToken */
export interface LpToken extends Enum {
    readonly isToken: boolean;
    readonly asToken: TokenSymbol;
    readonly isForeignAsset: boolean;
    readonly asForeignAsset: ForeignAssetId;
    readonly isStableLpToken: boolean;
    readonly asStableLpToken: StablePoolId;
    readonly type: 'Token' | 'ForeignAsset' | 'StableLpToken';
}
/** @name Rate */
export interface Rate extends FixedU128 {
}
/** @name Ratio */
export interface Ratio extends Permill {
}
/** @name Shortfall */
export interface Shortfall extends FixedU128 {
}
/** @name SignedFixedPoint */
export interface SignedFixedPoint extends FixedU128 {
}
/** @name StablePoolId */
export interface StablePoolId extends u32 {
}
/** @name TokenSymbol */
export interface TokenSymbol extends Enum {
    readonly isDot: boolean;
    readonly isIbtc: boolean;
    readonly isIntr: boolean;
    readonly isKsm: boolean;
    readonly isKbtc: boolean;
    readonly isKint: boolean;
    readonly type: 'Dot' | 'Ibtc' | 'Intr' | 'Ksm' | 'Kbtc' | 'Kint';
}
/** @name UnsignedFixedPoint */
export interface UnsignedFixedPoint extends FixedU128 {
}
/** @name VaultCurrencyPair */
export interface VaultCurrencyPair extends Struct {
    readonly collateral: CurrencyId;
    readonly wrapped: CurrencyId;
}
/** @name VaultId */
export interface VaultId extends Struct {
    readonly account_id: AccountId;
    readonly currencies: VaultCurrencyPair;
}
export declare type PHANTOM_DEFAULT = 'default';
