import * as types from '../config/types';
declare type HexInput = string | number;
declare type PaymentInput = HexInput | undefined;
export declare const toHexValue: (value: HexInput, byteLength?: number | undefined) => string;
export declare const toRlpBytes: (value: PaymentInput, byteLength?: number | undefined) => Uint8Array;
export declare const encodeMemoField: (value?: string | undefined) => Uint8Array;
export declare const getPaymentArgument: (addressIndex: number, payment: types.Payment, newScript: boolean) => Promise<string>;
export declare const getMessageArgument: (addressIndex: number, message: string) => Promise<string>;
/**
 * Convert mantissa (bigint) into a 54-byte buffer where each byte represents
 * one bit of the 54-bit mantissa value.
 *
 * Example flow:
 *   mantissa = 1_000_000_000_000_000n
 *   hex      = 0x038D7EA4C68000
 *   54-bit binary = 000011100011010111111010100100110001101000000000000000
 *   each bit -> 1 byte (0 -> 0x00, 1 -> 0x01)
 *   result   = "000000000000010100000101000001010001010101000001010100010100..."
 *              (108 hex chars / 54 bytes)
 */
export declare const MANTISSA_BIT_LENGTH = 54;
export declare const mantissaToBitBytes: (mantissa: bigint) => string;
export declare const encodeIouAmount: (amount: string) => {
    mantissa: bigint;
    exponent: number;
    encoded: string;
};
export declare const getTrustSetArgument: (addressIndex: number, payment: types.TokenPayment, isRLUSD: boolean) => Promise<string>;
export declare const getIouTransferArgument: (addressIndex: number, payment: types.IouTransferPayment, isRLUSD: boolean) => Promise<string>;
export {};
