/********************************************************************************
 *   Ledger JS API for ICON
 *   (c) 2018 ICON Foundation
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 ********************************************************************************/
import type Transport from "@ledgerhq/hw-transport";
/**
 * ICON API
 *
 * @example
 * import Icx from "@ledgerhq/hw-app-icx";
 * const icx = new Icx(transport)
 */
export default class Icx {
    transport: Transport;
    constructor(transport: Transport);
    /**
     * Returns public key and ICON address for a given BIP 32 path.
     * @param path a path in BIP 32 format
     * @option boolDisplay optionally enable or not the display
     * @option boolChaincode optionally enable or not the chaincode request
     * @return an object with a publickey(hexa string), address(string) and
     *  (optionally) chaincode(hexa string)
     * @example
     * icx.getAddress("44'/4801368'/0'", true, true).then(o => o.address)
     */
    getAddress(path: string, boolDisplay?: boolean, boolChaincode?: boolean): Promise<{
        publicKey: string;
        address: string;
        chainCode?: string;
    }>;
    /**
     * Signs a transaction and returns signed message given the raw transaction
     * and the BIP 32 path of the account to sign
     * @param path a path in BIP 32 format
     * @param rawTxAscii raw transaction data to sign in ASCII string format
     * @return an object with a base64 encoded signature and hash in hexa string
     * @example
     * icx.signTransaction("44'/4801368'/0'",
     *     "icx_sendTransaction.fee.0x2386f26fc10000." +
     *     "from.hxc9ecad30b05a0650a337452fce031e0c60eacc3a.nonce.0x3." +
     *     "to.hx4c5101add2caa6a920420cf951f7dd7c7df6ca24.value.0xde0b6b3a7640000")
     *   .then(result => ...)
     */
    signTransaction(path: string, rawTxAscii: string): Promise<{
        signedRawTxBase64: string;
        hashHex: string;
    }>;
    /**
     * Returns the application configurations such as versions.
     * @return  major/minor/patch versions of Icon application
     */
    getAppConfiguration(): Promise<{
        majorVersion: number;
        minorVersion: number;
        patchVersion: number;
    }>;
}
//# sourceMappingURL=Icon.d.ts.map