///
import { BaseCoin as StaticsBaseCoin, CoinFamily } from '@bitgo/statics';
import { BaseCoin, BitGoBase, KeyPair, VerifyAddressOptions, VerifyTransactionOptions, SignTransactionOptions, SignedTransaction, ParseTransactionOptions, TransactionPrebuild as BaseTransactionPrebuild, TransactionRecipient, FeeEstimateOptions } from '@bitgo/sdk-core';
import * as AvaxpLib from './lib';
export interface ExplainTransactionOptions {
txHex?: string;
halfSigned?: {
txHex: string;
};
publicKeys?: string[];
}
export interface TxInfo {
recipients: TransactionRecipient[];
from: string;
txid: string;
}
export interface AvaxpSignTransactionOptions extends SignTransactionOptions {
txPrebuild: TransactionPrebuild;
prv: string | string[];
pubKeys?: string[];
}
export interface TransactionPrebuild extends BaseTransactionPrebuild {
txHex: string;
txInfo: TxInfo;
source: string;
}
export declare type TransactionFee = AvaxpLib.TransactionFee;
export declare type TransactionExplanation = AvaxpLib.TransactionExplanation;
export declare class AvaxP extends BaseCoin {
protected readonly _staticsCoin: Readonly;
constructor(bitgo: BitGoBase, staticsCoin?: Readonly);
static createInstance(bitgo: BitGoBase, staticsCoin?: Readonly): BaseCoin;
getChain(): string;
getFamily(): CoinFamily;
getFullName(): string;
getBaseFactor(): string | number;
supportsStaking(): boolean;
verifyTransaction(params: VerifyTransactionOptions): Promise;
verifyAddress(params: VerifyAddressOptions): boolean;
/**
* Check if address is valid, then make sure it matches the root address.
*
* @param {VerifyAddressOptions} params address and rootAddress to verify
*/
isWalletAddress(params: VerifyAddressOptions): boolean;
/**
* Generate Avaxp key pair
*
* @param {Buffer} seed - Seed from which the new keypair should be generated, otherwise a random seed is used
* @returns {Object} object with generated pub and prv
*/
generateKeyPair(seed?: Buffer): KeyPair;
/**
* Return boolean indicating whether input is valid public key for the coin
*
* @param {string} pub the prv to be checked
* @returns is it valid?
*/
isValidPub(pub: string): boolean;
/**
* Return boolean indicating whether input is valid private key for the coin
*
* @param {string} prv the prv to be checked
* @returns is it valid?
*/
isValidPrv(prv: string): boolean;
isValidAddress(address: string): boolean;
/**
* Signs Avaxp transaction
*/
signTransaction(params: AvaxpSignTransactionOptions): Promise;
feeEstimate(params: FeeEstimateOptions): Promise;
parseTransaction(params: ParseTransactionOptions): Promise;
/**
* Explain a Avaxp transaction from txHex
* @param params
* @param callback
*/
explainTransaction(params: ExplainTransactionOptions): Promise;
signMessage(key: KeyPair, message: string | Buffer): Promise;
private getBuilder;
}
//# sourceMappingURL=avaxp.d.ts.map