import { Address } from "../models/account/Address";
import { TransferTransaction } from "../models/transaction/TransferTransaction";
import { Password } from "../models/wallet/Password";
import { Wallet } from "../models/wallet/Wallet";
export interface QRWalletText {
    type: number;
    v: number;
    data: {
        name: string;
        priv_key: string;
        salt: string;
    };
}
export interface QRAddressText {
    type: number;
    v: number;
    data: {
        addr: string;
        name: string;
    };
}
export interface QRTransactionText {
    type: number;
    v: number;
    data: {
        addr: string;
        amount: number;
        msg: string;
    };
}
export declare class QRService {
    /**
     * Generates the QR text from the wallet
     * @returns {string}
     */
    generateWalletQRText(password: Password, wallet: Wallet): string;
    /**
     * Decrypt the private key from the QR text
     * @param password password
     * @param qrWalletText Object generated by generateWalletQRText method
     * @return Decrypted private key
     */
    decryptWalletQRText(password: Password, qrWalletText: QRWalletText): string;
    /**
     * Generates the QR text from an address
     * @returns {string}
     */
    generateAddressQRText(address: Address): string;
    /**
     * Decrypt the address from the QR text
     * @param qrAddressText Object generated by generateAddressQRText method
     * @return Address
     */
    decryptAddressQRText(qrAddressText: QRAddressText): Address;
    /**
     * Generates the QR text from a transaction
     * @returns {string}
     */
    generateTransactionQRText(recipientAddress: Address, amount: number, msg: string): string;
    /**
     * Decrypt the transaction from the QR text
     * @param qrTransactionText Object generated by generateTransactionQRText method
     * @return TransferTransaction
     */
    decryptTrasactionQRText(qrTransactionText: QRTransactionText): TransferTransaction;
}
