interface IssuedCurrencyAmount {
    currency: string;
    issuer: string;
    value: string;
}
interface Memo {
    Memo: {
        MemoData: string;
        MemoType: string;
    };
}
export interface XrplTransaction extends Record<string, any> {
    Account: string;
    TransactionType: string;
}
export declare enum XrplTransactionType {
    PAYMENT = "Payment",
    TRUST_SET = "TrustSet"
}
export declare enum XrplTransactionFlag {
    /**
     * Enable the No Ripple flag, which blocks rippling between two trust lines
     * of the same currency if this flag is enabled on both.
     * @see https://xrpl.org/docs/references/protocol/transactions/types/trustset#trustset-flags
     */
    tfSetNoRipple = 131072
}
export interface XrplPaymentTx extends XrplTransaction {
    TransactionType: XrplTransactionType.PAYMENT;
    Amount: IssuedCurrencyAmount | string;
    Destination: string;
    Memos: Memo[];
    SigningPubKey: string;
    TxnSignature: string;
    hash: string;
}
export interface XrplTrustSetTx extends XrplTransaction {
    TransactionType: XrplTransactionType.TRUST_SET;
    LimitAmount: IssuedCurrencyAmount;
    Flags?: XrplTransactionFlag;
}
export declare enum XrplNetwork {
    MAINNET = 0,
    TESTNET = 1
}
export type XrplEvents = {
    disconnect: undefined;
};
export type XrplConnectorOnMethod = <E extends keyof XrplEvents>(event: E, listener: (event: XrplEvents[E]) => void) => () => void;
export interface XrplConnector {
    connect: () => Promise<string>;
    signAndSubmit: (_: {
        tx: XrplTransaction;
        network: XrplNetwork;
    }) => Promise<{
        hash: string;
        status: string;
    }>;
    cancelConnect?: () => void;
    cancelSignAndSubmit?: () => void;
    on?: XrplConnectorOnMethod;
    autoConnect?: () => Promise<string | null>;
    disconnect?: () => Promise<void>;
}
export interface XrplTokenBalance {
    address: string;
    balance: string;
}
export interface TrustLine {
    /**
     * Formatted balance
     */
    balance: string;
    account: string;
    currency: string;
    limit: string;
}
/**
 * Transaction statuses as defined in the XRPL documentation.
 * @see https://xrpl.org/docs/references/protocol/transactions/transaction-results#transaction-results
 */
export declare enum XrplTxStatus {
    SUCCESS = "tesSUCCESS"
}
export declare enum XamanXrplNetwork {
    MAINNET = "MAINNET",
    TESTNET = "TESTNET",
    DEVNET = "DEVNET"
}
/**
 * @see https://chainagnostic.org/CAIPs/caip-2
 */
export declare enum XrplCAIP2ChainId {
    MAINNET = "xrpl:0",
    TESTNET = "xrpl:1"
}
export declare enum XRPL_METHOD {
    SIGN_TRANSACTION = "xrpl_signTransaction"
}
export {};
