import { TrustCommand, MessagePayload, TransactionPayload } from './lib/commands';
export declare enum TrustError {
    unknown = -1,
    none = 0,
    cancelled = 1,
    invalidRequest = 2,
    watchOnly = 3,
    notInstalled = 1000,
}
export declare namespace TrustError {
    function toString(error: TrustError): "" | "Unknown Error" | "No Error" | "User cancelled" | "Signing request is invalid" | "Wallet is watch only" | "Trust Wallet is not installed";
}
declare class TrustWallet {
    callbackScheme: string;
    app: {
        name: string;
        scheme: string;
        AppStoreURL: string;
        GooglePlayURL: string;
    };
    resolvers: {
        [key: string]: (value: string) => void;
    };
    rejectors: {
        [key: string]: (value: Object) => void;
    };
    /**
     * constructor
     * @param callbackScheme default callback scheme
     */
    constructor(callbackScheme: string);
    /**
     * start listening openURL event, you don't need to call it unless you explicit called cleanup
     */
    start(): void;
    /**
     * stop listening openURL event and clean resolvers
     */
    cleanup(): void;
    /**
     * check if Trust Wallet is installed
     */
    installed(): Promise<boolean>;
    /**
     * sign a transaction
     * @param payload transaction payload
     * @returns {Promise<string>} signed transaction hash
     */
    signTransaction(payload: TransactionPayload): Promise<string>;
    /**
     * sign a message
     * @param payload message payload
     * @returns {Promise<string>} signed message hash
     */
    signMessage(payload: MessagePayload): Promise<string>;
    /**
     * sign a personal message
     * @param payload message payload
     * @returns {Promise<string>} signed personal message hash
     */
    signPersonalMessage(payload: MessagePayload): Promise<string>;
    private runCommand(payload);
    private handleOpenURL(event);
}
export default TrustWallet;
export { TrustCommand, MessagePayload, TransactionPayload };
