import algosdk from 'algosdk'; import { BaseCoin as CoinConfig } from '@bitgo/statics'; import { TransactionType } from '@bitgo/sdk-core'; import { TransactionBuilder } from './transactionBuilder'; import { Transaction } from './transaction'; export declare class KeyRegistrationBuilder extends TransactionBuilder { protected _voteKey: string; protected _selectionKey: string; protected _voteFirst: number; protected _voteLast: number; protected _voteKeyDilution: number; protected _nonParticipation: boolean; protected _stateProofKey: string; constructor(coinConfig: Readonly); /** * Sets the vote key * * @returns {KeyRegistrationBuilder} This Key Registration builder. * * @param {string} key The root participation public key. See Generate a Participation Key to learn more. * https://developer.algorand.org/docs/reference/transactions/#key-registration-transaction */ voteKey(key: string): KeyRegistrationBuilder; /** * Sets the selection key * * @returns {KeyRegistrationBuilder} This Key Registration builder. * * @param {string} key The VRF public key for the account. * https://developer.algorand.org/docs/reference/transactions/#key-registration-transaction */ selectionKey(key: string): KeyRegistrationBuilder; /** * Sets the stateProof key * * @returns {KeyRegistrationBuilder} This Key Registration builder. * * @param {string} key The stateproof key. See consensus for more information. * https://developer.algorand.org/docs/get-details/algorand_consensus/?from_query=state#state-proof-keys */ stateProofKey(key: string): KeyRegistrationBuilder; /** *Sets the vote first round * * @returns {KeyRegistrationBuilder} This Key Registration builder. * * @param {number} round The first round that the participation key is valid. Not to be confused with the FirstValid round of the keyreg transaction. * https://developer.algorand.org/docs/reference/transactions/#key-registration-transaction */ voteFirst(round: number): KeyRegistrationBuilder; /** * Sets the vote last round * * @returns {KeyRegistrationBuilder} This Key Registration builder. * * A recommended range is 3,000,000 rounds. * * @param {number} round No theoretical limit. * https://developer.algorand.org/docs/run-a-node/participate/generate_keys/ */ voteLast(round: number): KeyRegistrationBuilder; /** * Sets the vote key dilution * * @returns {KeyRegistrationBuilder} This Key Registration builder. * * Defaults to 10,000 * * @param {number} size [10000]. To reduce the size of the participation key, set the key dilution value to roughly the square root of the range that the partkey is valid for. * https://developer.algorand.org/docs/run-a-node/participate/generate_keys/#generate-the-participation-key-with-goal * @param size */ voteKeyDilution(size?: number): KeyRegistrationBuilder; /** * Sets the non participation flag * * @returns {KeyRegistrationBuilder} This Key Registration builder. * * @param {boolean} nonParticipation All new Algorand accounts are participating by default. * This means that they earn rewards. Mark an account nonparticipating by setting this value to true and this account * will no longer earn rewards NEVER. * https://developer.algorand.org/docs/reference/transactions/#key-registration-transaction */ nonParticipation(nonParticipation: boolean): KeyRegistrationBuilder; protected buildAlgoTxn(): algosdk.Transaction; private buildOfflineKeyRegTransaction; private buildOnlineKeyRegTransaction; private buildNonParticipationKeyRegTransaction; protected get transactionType(): TransactionType; /** @inheritdoc */ protected fromImplementation(rawTransaction: Uint8Array | string): Transaction; /** @inheritdoc */ validateRawTransaction(rawTransaction: Uint8Array | string): void; private isNonParticipationKeyRegAlgoSDKTransaction; private isNonParticipationKeyRegAccountLibTransaction; private isOnlineKeyRegAlgoSDKTransaction; private isOnlineKeyRegAccountLibTransaction; private isOfflineKeyRegAlgoSDKTransaction; private isOfflineKeyRegAccountLibTransaction; /** @inheritdoc */ validateTransaction(transaction: Transaction): void; private validateFields; } //# sourceMappingURL=keyRegistrationBuilder.d.ts.map