///
import { ethers } from 'ethers';
import { ECDSASignature } from 'ethereumjs-util';
import { TypedDataDomain, TypedDataField } from '@ethersproject/abstract-signer';
import { EthereumAddress, EthereumPrivateKey, EthereumPublicKey, EthereumSignature, EthereumSignatureNative, EthereumTxData, EthUnit } from '../models';
/** Checks if a valid signature with ECDSASignature */
export declare function isValidSignature(v: number, r: Buffer, s: Buffer): boolean;
export declare function isValidEthereumTxData(value: string | Buffer | EthereumTxData): value is EthereumTxData;
export declare function isValidEthereumPublicKey(value: string | EthereumPublicKey): value is EthereumPublicKey;
export declare function isValidEthereumPrivateKey(value: EthereumPrivateKey | string): value is EthereumPrivateKey;
/** whether a value is a valid native Ethereum signature (or a strinigified version of it) */
export declare function isValidEthereumSignatureNative(value: EthereumSignature | string | ECDSASignature): value is EthereumSignature;
/** whether a value is a valid native Ethereum signature (or a strinigified version of it) */
export declare function isValidEthereumSignature(value: EthereumSignature | string | ECDSASignature): value is EthereumSignature;
/** whether value is an Ethereum address */
export declare function isValidEthereumAddress(value: string | Buffer | EthereumAddress): boolean;
/** whether value is an Ethereum TxId (Hash) */
export declare function isValidEthereumTxId(value: string | Buffer | EthereumAddress): boolean;
/** throws error if value is not a valid transactionId */
export declare function assertIsValidTransactionId(value: any): void;
/** Accepts hex string checks if a valid ethereum data hex
* Returns EthereumPublicKey with prefix
*/
export declare function toEthereumTxData(value: string | Buffer): EthereumTxData;
/** Accepts hex string checks if a valid ethereum public key
* Returns EthereumPublicKey with prefix
*/
export declare function toEthereumPublicKey(value: string): EthereumPublicKey;
/** Accepts hex string checks if a valid ethereum private key
* Returns EthereumPrivateKey with prefix
*/
export declare function toEthereumPrivateKey(value: string): EthereumPrivateKey;
/** Accepts ECDSASignature object or stringified version of it, or hexstring of signature (as returned from eth_sign)
* Returns EthereumSignatureNative
*/
export declare function toEthereumSignatureNative(value: string | ECDSASignature): EthereumSignatureNative;
/** Accepts any signature object or stringified version of it
* Returns EthereumSignature string (stringified valid for ETh chain or multisig contract)
*/
export declare function toEthereumSignature(value: any): EthereumSignature;
/** Accepts hex string checks if a valid ethereum address
* Returns EthereumAddress with prefix
*/
export declare function toEthereumAddress(value: string): EthereumAddress;
/** convert to supported units - e.g. 'eth' to 'ether' */
export declare function mapAlternativeUnits(unit: string): string;
/** convert string to EthUnit - throws if not valid value, maps known synonyms ('eth' to 'ether') */
export declare function toEthUnit(unit: string): EthUnit;
/** accepts a hexstring or Buffer and returns hexstring (converts buffer to hexstring) */
export declare function convertBufferToHexStringIfNeeded(value: string | Buffer): any;
/** accepts a privatekey string returns a wallet object */
export declare function getEthersWallet(privateKey: string, provider?: ethers.providers.Provider): ethers.Wallet;
/** accepts a privatekey string returns an address */
export declare function privateKeyToAddress(privateKey: string): EthereumAddress;
/** checks that the signature matches the message and that the message matches the types provided */
export declare function verifyTypedData(domain: TypedDataDomain, types: Record, message: Record, signature: any): string;
/** splits a signature into r, s, v values */
export declare function splitSignature(signature: string): ethers.Signature;