import { AuditDecryptedKeyParams, BaseBroadcastTransactionOptions, BaseBroadcastTransactionResult, BaseCoin, BitGoBase, KeyPair, MPCAlgorithm, MultisigType, ParsedTransaction, ParseTransactionOptions, SignedTransaction, SignTransactionOptions, VerifyTransactionOptions } from '@bitgo/sdk-core'; import { BaseCoin as StaticsBaseCoin } from '@bitgo/statics'; import BigNumber from 'bignumber.js'; import { Hash } from 'crypto'; import { PayloadsData, RecoveryOptions, RecoveryTransaction, Signatures, IcpTransactionExplanation, TransactionHexParams, TssVerifyIcpAddressOptions, UnsignedSweepRecoveryTransaction } from './lib/iface'; /** * Class representing the Internet Computer (ICP) coin. * Extends the BaseCoin class and provides specific implementations for ICP. * * @see {@link https://internetcomputer.org/} * @see {@link https://internetcomputer.org/docs/current/developer-docs/defi/rosetta/icp_rosetta/data_api/} */ export declare class Icp extends BaseCoin { protected readonly _staticsCoin: Readonly; protected constructor(bitgo: BitGoBase, staticsCoin?: Readonly); static createInstance(bitgo: BitGoBase, staticsCoin?: Readonly): BaseCoin; getChain(): string; getBaseChain(): string; getFamily(): string; getFullName(): string; getBaseFactor(): number; explainTransaction(params: TransactionHexParams): Promise; verifyTransaction(params: VerifyTransactionOptions): Promise; /** * Verify that an address belongs to this wallet. * * @param {TssVerifyIcpAddressOptions} params - Verification parameters * @returns {Promise} True if address belongs to wallet * @throws {InvalidAddressError} If address format is invalid or doesn't match derived address * @throws {Error} If invalid wallet version or missing parameters */ isWalletAddress(params: TssVerifyIcpAddressOptions): Promise; parseTransaction(params: ParseTransactionOptions): Promise; /** * Generate a new keypair for this coin. * @param seed Seed from which the new keypair should be generated, otherwise a random seed is used */ generateKeyPair(seed?: Buffer): KeyPair; isValidAddress(address: string): boolean; signTransaction(params: SignTransactionOptions & { txPrebuild: { txHex: string; }; prv: string; }): Promise; isValidPub(key: string): boolean; isValidPrv(key: string): boolean; /** @inheritDoc */ supportsTss(): boolean; /** inherited doc */ getDefaultMultisigType(): MultisigType; /** @inheritDoc */ getMPCAlgorithm(): MPCAlgorithm; /** @inheritDoc **/ getHashFunction(): Hash; private getAddressFromPublicKey; /** @inheritDoc **/ protected getPublicNodeUrl(): string; /** @inheritDoc **/ broadcastTransaction(payload: BaseBroadcastTransactionOptions): Promise; private getPublicNodeBroadcastEndpoint; /** * Fetches the account balance for a given public key. * @param publicKeyHex - Hex-encoded public key of the account. * @returns Promise resolving to the account balance as a string. * @throws Error if the balance could not be fetched. */ protected getAccountBalance(publicKeyHex: string): Promise; /** * Retrieves the current transaction fee data from the ICP public node. * * This method creates an instance of `IcpAgent` using the public node URL, * then queries the node for the current fee information. * * @returns A promise that resolves to a `BigNumber` representing the current transaction fee. * @throws Will propagate any errors encountered while communicating with the ICP node. */ protected getFeeData(): Promise; private getBuilderFactory; /** * Generates an array of signatures for the provided payloads using MPC * * @param payloadsData - The data containing the payloads to be signed. * @param senderPublicKey - The public key of the sender in hexadecimal format. * @param userKeyShare - The user's key share as a Buffer. * @param backupKeyShare - The backup key share as a Buffer. * @param commonKeyChain - The common key chain identifier used for MPC signing. * @returns A promise that resolves to an array of `Signatures` objects, each containing the signing payload, * signature type, public key, and the generated signature in hexadecimal format. */ signatures(payloadsData: PayloadsData, senderPublicKey: string, userKeyShare: Buffer, backupKeyShare: Buffer, commonKeyChain: string): Promise; /** * Builds a funds recovery transaction without BitGo * @param params */ recover(params: RecoveryOptions): Promise; /** @inheritDoc */ auditDecryptedKey({ multiSigType, prv, publicKey }: AuditDecryptedKeyParams): void; } //# sourceMappingURL=icp.d.ts.map