import { BaseAmount, Asset } from '@xchainjs/xchain-util';
/**
 * Memo to swap
 *
 * @param asset Asset to swap
 * @param address Destination `address` to swap and send to someone. If `address` is emtpy or undefined, it will send swap amount toitself
 * @param limit Price protection. If the value isn't achieved then it is refunded.
 * ie, set 10000000 to be garuanteed a minimum of 1 full asset.
 * If LIM is ommitted, then there is no price protection
 *
 * @see https://docs.thorchain.org/developers/transaction-memos#transactions
 */
export declare const getSwapMemo: ({ asset, address, limit, short }: {
    asset: Asset;
    address?: string | undefined;
    limit?: {
        type: import("@xchainjs/xchain-util").Denomination.Base;
        amount: () => import("bignumber.js").default;
        plus: (value: any | import("bignumber.js").default.Value, decimal?: number | undefined) => any;
        minus: (value: any | import("bignumber.js").default.Value, decimal?: number | undefined) => any;
        times: (value: any | import("bignumber.js").default.Value, decimal?: number | undefined) => any;
        div: (value: any | import("bignumber.js").default.Value, decimal?: number | undefined) => any;
        gt: (value: any | import("bignumber.js").default.Value) => boolean;
        gte: (value: any | import("bignumber.js").default.Value) => boolean;
        lt: (value: any | import("bignumber.js").default.Value) => boolean;
        lte: (value: any | import("bignumber.js").default.Value) => boolean;
        eq: (value: any | import("bignumber.js").default.Value) => boolean;
        decimal: number;
    } | undefined;
    short?: boolean | undefined;
}) => string;
/**
 * Memo to deposit
 *
 * @param asset Asset to deposit into a specified pool
 * @param address (optional) For cross-chain deposits, an address is needed to cross-reference addresses
 *
 * Memo is based on definition in https://gitlab.com/thorchain/thornode/-/blob/develop/x/thorchain/memo/memo.go#L35
 */
export declare const getDepositMemo: ({ asset, address, short }: {
    asset: Asset;
    address?: string | undefined;
    short?: boolean | undefined;
}) => string;
/**
 * Memo to withdraw
 *
 * @param asset Asset to withdraw from a pool
 * @param percent Percent (0-100%)
 *
 * @see https://docs.thorchain.org/developers/transaction-memos#transactions
 */
export declare const getWithdrawMemo: ({ asset, percent, targetAsset, short }: {
    asset: Asset;
    percent: number;
    targetAsset?: Asset | undefined;
    short?: boolean | undefined;
}) => string;
/**
 * Memo to switch
 *
 * @param address Address to send amounts to
 *
 * Memo is based on definitions in https://gitlab.com/thorchain/thornode/-/blob/develop/x/thorchain/memo/memo.go#L38-65
 */
export declare const getSwitchMemo: (address: string) => string;
/**
 * Memo to bond
 *
 * @param thorAddress THOR address to send amounts to
 *
 * Memo is based on definition in https://gitlab.com/thorchain/thornode/-/blob/develop/x/thorchain/memo/memo.go#L55
 * @docs https://docs.thorchain.org/thornodes/joining#2-send-bond
 */
export declare const getBondMemo: (thorAddress: string) => string;
/**
 * Memo to unbond
 *
 * @param thorAddress THOR address unbond from
 * @param units Base Amount of units to unbond
 *
 * Memo is based on definition in https://gitlab.com/thorchain/thornode/-/blob/develop/x/thorchain/memo/memo.go#L55
 * @docs https://docs.thorchain.org/thornodes/leaving#unbonding
 */
export declare const getUnbondMemo: (thorAddress: string, units: BaseAmount) => string;
/**
 * Memo to leave
 *
 * @param thorAddress THOR address to leave from
 *
 * Memo is based on definition in https://gitlab.com/thorchain/thornode/-/blob/develop/x/thorchain/memo/memo.go#L55
 * @docs https://docs.thorchain.org/thornodes/leaving#leaving
 */
export declare const getLeaveMemo: (thorAddress: string) => string;
