import BigNumber from 'bignumber.js';
import { BufferComposer, ComposableBuffer } from '@muirglacier/jellyfish-buffer';
import { Script } from '../../tx';
import { ScriptBalances, TokenBalance } from './dftx_balance';
/**
 * PoolSwap DeFi Transaction
 */
export interface PoolSwap {
    fromScript: Script;
    fromTokenId: number;
    fromAmount: BigNumber;
    toScript: Script;
    toTokenId: number;
    maxPrice: BigNumber;
}
/**
 * Composable PoolSwap, C stands for Composable.
 * Immutable by design, bi-directional fromBuffer, toBuffer deep composer.
 * @throws Error if more than 8 decimals
 */
export declare class CPoolSwap extends ComposableBuffer<PoolSwap> {
    static OP_CODE: number;
    static OP_NAME: string;
    composers(ps: PoolSwap): BufferComposer[];
}
export interface PoolId {
    id: number;
}
/**
 * Composable PoolId, C stands for Composable.
 * Immutable by design, bi-directional fromBuffer, toBuffer deep composer.
 */
export declare class CPoolId extends ComposableBuffer<PoolId> {
    composers(pi: PoolId): BufferComposer[];
}
/**
 * CompositeSwap DeFi Transaction
 */
export interface CompositeSwap {
    poolSwap: PoolSwap;
    pools: PoolId[];
}
/**
 * Composable CompositeSwap, C stands for Composable.
 * Extends from CPoolSwap as it contains same data structure but with different DfTx OP_CODE.
 * Immutable by design, bi-directional fromBuffer, toBuffer deep composer.
 * @throws Error if more than 8 decimals
 */
export declare class CCompositeSwap extends ComposableBuffer<CompositeSwap> {
    static OP_CODE: number;
    static OP_NAME: string;
    composers(cs: CompositeSwap): BufferComposer[];
}
/**
 * PoolAddLiquidity DeFi Transaction
 */
export interface PoolAddLiquidity {
    from: ScriptBalances[];
    shareAddress: Script;
}
/**
 * Composable PoolAddLiquidity, C stands for Composable.
 * Immutable by design, bi-directional fromBuffer, toBuffer deep composer.
 */
export declare class CPoolAddLiquidity extends ComposableBuffer<PoolAddLiquidity> {
    static OP_CODE: number;
    static OP_NAME: string;
    composers(p: PoolAddLiquidity): BufferComposer[];
}
/**
 * PoolRemoveLiquidity DeFi Transaction
 */
export interface PoolRemoveLiquidity {
    script: Script;
    tokenId: number;
    amount: BigNumber;
}
/**
 * Composable PoolRemoveLiquidity, C stands for Composable.
 * Immutable by design, bi-directional fromBuffer, toBuffer deep composer.
 */
export declare class CPoolRemoveLiquidity extends ComposableBuffer<PoolRemoveLiquidity> {
    static OP_CODE: number;
    static OP_NAME: string;
    composers(p: PoolRemoveLiquidity): BufferComposer[];
}
/**
 * PoolCreatePair DeFi Transaction
 */
export interface PoolCreatePair {
    tokenA: number;
    tokenB: number;
    commission: BigNumber;
    ownerAddress: Script;
    status: boolean;
    pairSymbol: string;
    customRewards: TokenBalance[];
}
/**
 * Composable PoolCreatePair, C stands for Composable.
 * Immutable by design, bi-directional fromBuffer, toBuffer deep composer.
 */
export declare class CPoolCreatePair extends ComposableBuffer<PoolCreatePair> {
    static OP_CODE: number;
    static OP_NAME: string;
    composers(p: PoolCreatePair): BufferComposer[];
}
/**
 * PoolUpdatePair DeFi Transaction
 */
export interface PoolUpdatePair {
    poolId: number;
    status: boolean;
    commission: BigNumber;
    ownerAddress: Script;
    customRewards: TokenBalance[];
}
/**
 * Composable PoolUpdatePair, C stands for Composable.
 * Immutable by design, bi-directional fromBuffer, toBuffer deep composer.
 */
export declare class CPoolUpdatePair extends ComposableBuffer<PoolUpdatePair> {
    static OP_CODE: number;
    static OP_NAME: string;
    composers(p: PoolUpdatePair): BufferComposer[];
}
//# sourceMappingURL=dftx_pool.d.ts.map