///
import { ExplainTransactionOptions } from '@bitgo-beta/abstract-eth';
import { Eth, Recipient, GetSendMethodArgsOptions, SendMethodArgs, BuildTransactionParams, SignFinalOptions, SignTransactionOptions, SignedTransaction, RecoverOptions, RecoveryInfo, OfflineVaultTxInfo } from '@bitgo-beta/sdk-coin-eth';
import { BaseCoin, BitGoBase, TransactionExplanation, FullySignedTransaction, MPCAlgorithm } from '@bitgo-beta/sdk-core';
import { BaseCoin as StaticsBaseCoin } from '@bitgo-beta/statics';
import { TransactionBuilder } from './lib';
import type * as EthTxLib from '@ethereumjs/tx';
export declare class Polygon extends Eth {
protected readonly _staticsCoin: Readonly;
protected readonly sendMethodName: 'sendMultiSig' | 'sendMultiSigToken';
protected constructor(bitgo: BitGoBase, staticsCoin?: Readonly);
static createInstance(bitgo: BitGoBase, staticsCoin?: Readonly): BaseCoin;
static getCustomChainName(chainId?: number): string;
static buildTransaction(params: BuildTransactionParams): EthTxLib.FeeMarketEIP1559Transaction | EthTxLib.Transaction;
getChain(): string;
getFamily(): string;
getFullName(): string;
/**
* Get the base chain that the coin exists on.
*/
getBaseChain(): string;
isValidPub(pub: string): boolean;
/** @inheritDoc */
explainTransaction(options: ExplainTransactionOptions): Promise;
/**
* Create a new transaction builder for the current chain
* @return a new transaction builder
*/
getTransactionBuilder(): TransactionBuilder;
/**
* Get transfer operation for coin
* @param recipient recipient info
* @param expireTime expiry time
* @param contractSequenceId sequence id
* @returns {Array} operation array
*/
getOperation(recipient: Recipient, expireTime: number, contractSequenceId: number): (string | Buffer)[][];
/**
* Build arguments to call the send method on the wallet contract
* @param txInfo
*/
getSendMethodArgs(txInfo: GetSendMethodArgsOptions): SendMethodArgs[];
/**
* Helper function for signTransaction for the rare case that SDK is doing the second signature
* Note: we are expecting this to be called from the offline vault
* @param params.txPrebuild
* @param params.prv
* @returns {{txHex: string}}
*/
signFinalPolygon(params: SignFinalOptions): Promise;
/**
* Assemble half-sign prebuilt transaction
* @param params
*/
signTransaction(params: SignTransactionOptions): Promise;
/**
* Make a query to Polygonscan for information such as balance, token balance, solidity calls
* @param {Object} query key-value pairs of parameters to append after /api
* @returns {Promise