import { BufferComposer, ComposableBuffer } from '@muirglacier/jellyfish-buffer';
import { TokenBalance, TokenBalanceVarInt } from './dftx_balance';
import BigNumber from 'bignumber.js';
import { Script } from '../../tx';
import { CurrencyPair } from './dftx_price';
/**
 * CreateLoanScheme / UpdateLoanScheme DeFi Transaction
 */
export interface SetLoanScheme {
    ratio: number;
    rate: BigNumber;
    identifier: string;
    update: BigNumber;
}
/**
 * DestroyLoanScheme DeFi Transaction
 */
export interface DestroyLoanScheme {
    identifier: string;
    height: BigNumber;
}
/**
 * SetDefaultLoanScheme DeFi Transaction
 */
export interface SetDefaultLoanScheme {
    identifier: string;
}
/**
 * SetCollateralToken DeFi Transaction
 */
export interface SetCollateralToken {
    token: number;
    factor: BigNumber;
    currencyPair: CurrencyPair;
    activateAfterBlock: number;
}
/**
 * SetLoanToken DeFi Transaction
 */
export interface SetLoanToken {
    symbol: string;
    name: string;
    currencyPair: CurrencyPair;
    mintable: boolean;
    interest: BigNumber;
}
/**
 * UpdateLoanToken DeFi Transaction
 */
export interface UpdateLoanToken {
    symbol: string;
    name: string;
    currencyPair: CurrencyPair;
    mintable: boolean;
    interest: BigNumber;
    tokenTx: string;
}
/**
 * Composable CreateLoanScheme and UpdateLoanScheme, C stands for Composable.
 * Immutable by design, bi-directional fromBuffer, toBuffer deep composer.
 */
export declare class CSetLoanScheme extends ComposableBuffer<SetLoanScheme> {
    static OP_CODE: number;
    static OP_NAME: string;
    composers(sls: SetLoanScheme): BufferComposer[];
}
/**
 * Composable DestroyLoanScheme, C stands for Composable.
 * Immutable by design, bi-directional fromBuffer, toBuffer deep composer.
 */
export declare class CDestroyLoanScheme extends ComposableBuffer<DestroyLoanScheme> {
    static OP_CODE: number;
    static OP_NAME: string;
    composers(dls: DestroyLoanScheme): BufferComposer[];
}
/**
 * Composable SetDefaultLoanScheme, C stands for Composable.
 * Immutable by design, bi-directional fromBuffer, toBuffer deep composer.
 */
export declare class CSetDefaultLoanScheme extends ComposableBuffer<SetDefaultLoanScheme> {
    static OP_CODE: number;
    static OP_NAME: string;
    composers(sdls: SetDefaultLoanScheme): BufferComposer[];
}
/**
 * Composable SetCollateralToken, C stands for Composable.
 * Immutable by design, bi-directional fromBuffer, toBuffer deep composer.
 */
export declare class CSetCollateralToken extends ComposableBuffer<SetCollateralToken> {
    static OP_CODE: number;
    static OP_NAME: string;
    composers(sct: SetCollateralToken): BufferComposer[];
}
/**
 * Composable SetLoanToken, C stands for Composable.
 * Immutable by design, bi-directional fromBuffer, toBuffer deep composer.
 */
export declare class CSetLoanToken extends ComposableBuffer<SetLoanToken> {
    static OP_CODE: number;
    static OP_NAME: string;
    composers(slt: SetLoanToken): BufferComposer[];
}
/**
 * Composable UpdateLoanToken, C stands for Composable.
 * Immutable by design, bi-directional fromBuffer, toBuffer deep composer.
 */
export declare class CUpdateLoanToken extends ComposableBuffer<UpdateLoanToken> {
    static OP_CODE: number;
    static OP_NAME: string;
    composers(ult: UpdateLoanToken): BufferComposer[];
}
/**
 * CreateVault DeFi Transaction
 */
export interface CreateVault {
    ownerAddress: Script;
    schemeId: string;
}
/**
 * Composable CreateVault, C stands for Composable.
 * Immutable by design, bi-directional fromBuffer, toBuffer deep composer.
 */
export declare class CCreateVault extends ComposableBuffer<CreateVault> {
    static OP_CODE: number;
    static OP_NAME: string;
    composers(cv: CreateVault): BufferComposer[];
}
/**
 * UpdateVault DeFi Transaction
 */
export interface UpdateVault {
    vaultId: string;
    ownerAddress: Script;
    schemeId: string;
}
/**
 * Composable UpdateVault, C stands for Composable.
 * Immutable by design, bi-directional fromBuffer, toBuffer deep composer.
 */
export declare class CUpdateVault extends ComposableBuffer<UpdateVault> {
    static OP_CODE: number;
    static OP_NAME: string;
    composers(uv: UpdateVault): BufferComposer[];
}
/**
 * DepositToVault DeFi Transaction
 */
export interface DepositToVault {
    vaultId: string;
    from: Script;
    tokenAmount: TokenBalanceVarInt;
}
/**
 * Composable DepositToVault, C stands for Composable.
 * Immutable by design, bi-directional fromBuffer, toBuffer deep composer.
 */
export declare class CDepositToVault extends ComposableBuffer<DepositToVault> {
    static OP_CODE: number;
    static OP_NAME: string;
    composers(dtv: DepositToVault): BufferComposer[];
}
/**
 * WithdrawFromVault DeFi Transaction
 */
export interface WithdrawFromVault {
    vaultId: string;
    to: Script;
    tokenAmount: TokenBalanceVarInt;
}
/**
 * Composable WithdrawFromVault, C stands for Composable.
 * Immutable by design, bi-directional fromBuffer, toBuffer deep composer.
 */
export declare class CWithdrawFromVault extends ComposableBuffer<WithdrawFromVault> {
    static OP_CODE: number;
    static OP_NAME: string;
    composers(dtv: WithdrawFromVault): BufferComposer[];
}
/**
 * TakeLoan DeFi Transaction
 */
export interface TakeLoan {
    vaultId: string;
    to: Script;
    tokenAmounts: TokenBalance[];
}
/**
 * Composable TakeLoan, C stands for Composable.
 * Immutable by design, bi-directional fromBuffer, toBuffer deep composer.
 */
export declare class CTakeLoan extends ComposableBuffer<TakeLoan> {
    static OP_CODE: number;
    static OP_NAME: string;
    composers(tl: TakeLoan): BufferComposer[];
}
/**
 * PaybackLoan DeFi Transaction
 */
export interface PaybackLoan {
    vaultId: string;
    from: Script;
    tokenAmounts: TokenBalance[];
}
/**
 * Composable PaybackLoan, C stands for Composable.
 * Immutable by design, bi-directional fromBuffer, toBuffer deep composer.
 */
export declare class CPaybackLoan extends ComposableBuffer<PaybackLoan> {
    static OP_CODE: number;
    static OP_NAME: string;
    composers(pl: PaybackLoan): BufferComposer[];
}
/**
 * CloseVault DeFi Transaction
 */
export interface CloseVault {
    vaultId: string;
    to: Script;
}
/**
 * Composable CloseVault, C stands for Composable.
 * Immutable by design, bi-directional fromBuffer, toBuffer deep composer.
 */
export declare class CCloseVault extends ComposableBuffer<CloseVault> {
    static OP_CODE: number;
    static OP_NAME: string;
    composers(cv: CloseVault): BufferComposer[];
}
/**
 * PlaceAuctionBid DeFi Transaction
 */
export interface PlaceAuctionBid {
    vaultId: string;
    index: number;
    from: Script;
    tokenAmount: TokenBalanceVarInt;
}
/**
 * Composable PlaceAuctionBid, C stands for Composable.
 * Immutable by design, bi-directional fromBuffer, toBuffer deep composer.
 */
export declare class CPlaceAuctionBid extends ComposableBuffer<PlaceAuctionBid> {
    static OP_CODE: number;
    static OP_NAME: string;
    composers(pab: PlaceAuctionBid): BufferComposer[];
}
//# sourceMappingURL=dftx_loans.d.ts.map