import { Address } from './encoding/address.js'; import * as encoding from './encoding/encoding.js'; import { NamedMapSchema } from './encoding/schema/index.js'; import { OnApplicationComplete, TransactionParams, TransactionType } from './types/transactions/base.js'; import { StateProof, StateProofMessage } from './stateproof.js'; import { HeartbeatProof } from './heartbeat.js'; export interface TransactionBoxReference { readonly appIndex: bigint; readonly name: Uint8Array; } export interface TransactionHoldingReference { readonly assetIndex: bigint; readonly address: Address; } export interface TransactionLocalsReference { readonly appIndex: bigint; readonly address: Address; } export interface TransactionResourceReference { readonly address?: Readonly
; readonly appIndex?: Readonly; readonly assetIndex?: Readonly; readonly holding?: Readonly; readonly locals?: Readonly; readonly box?: Readonly; } export interface PaymentTransactionFields { readonly receiver: Address; readonly amount: bigint; readonly closeRemainderTo?: Address; } export interface KeyRegistrationTransactionFields { readonly voteKey?: Uint8Array; readonly selectionKey?: Uint8Array; readonly stateProofKey?: Uint8Array; readonly voteFirst?: bigint; readonly voteLast?: bigint; readonly voteKeyDilution?: bigint; readonly nonParticipation: boolean; } export interface AssetConfigTransactionFields { readonly assetIndex: bigint; readonly total: bigint; readonly decimals: number; readonly defaultFrozen: boolean; readonly manager?: Address; readonly reserve?: Address; readonly freeze?: Address; readonly clawback?: Address; readonly unitName?: string; readonly assetName?: string; readonly assetURL?: string; readonly assetMetadataHash?: Uint8Array; } export interface AssetTransferTransactionFields { readonly assetIndex: bigint; readonly amount: bigint; readonly assetSender?: Address; readonly receiver: Address; readonly closeRemainderTo?: Address; } export interface AssetFreezeTransactionFields { readonly assetIndex: bigint; readonly freezeAccount: Address; readonly frozen: boolean; } export interface ApplicationTransactionFields { readonly appIndex: bigint; readonly onComplete: OnApplicationComplete; readonly numLocalInts: number; readonly numLocalByteSlices: number; readonly numGlobalInts: number; readonly numGlobalByteSlices: number; readonly extraPages: number; readonly approvalProgram: Uint8Array; readonly clearProgram: Uint8Array; readonly appArgs: ReadonlyArray; readonly accounts: ReadonlyArray
; readonly foreignApps: ReadonlyArray; readonly foreignAssets: ReadonlyArray; readonly boxes: ReadonlyArray; readonly access: ReadonlyArray; readonly rejectVersion: number; } export interface StateProofTransactionFields { readonly stateProofType: number; readonly stateProof?: StateProof; readonly message?: StateProofMessage; } export interface HeartbeatTransactionFields { readonly address: Address; readonly proof: HeartbeatProof; readonly seed: Uint8Array; readonly voteID: Uint8Array; readonly keyDilution: bigint; } /** * Transaction enables construction of Algorand transactions * */ export declare class Transaction implements encoding.Encodable { static readonly encodingSchema: NamedMapSchema; /** common */ readonly type: TransactionType; readonly sender: Address; readonly note: Uint8Array; readonly lease?: Uint8Array; readonly rekeyTo?: Address; /** group */ group?: Uint8Array; /** suggested params */ fee: bigint; readonly firstValid: bigint; readonly lastValid: bigint; readonly genesisID?: string; readonly genesisHash?: Uint8Array; /** type-specific fields */ readonly payment?: PaymentTransactionFields; readonly keyreg?: KeyRegistrationTransactionFields; readonly assetConfig?: AssetConfigTransactionFields; readonly assetTransfer?: AssetTransferTransactionFields; readonly assetFreeze?: AssetFreezeTransactionFields; readonly applicationCall?: ApplicationTransactionFields; readonly stateProof?: StateProofTransactionFields; readonly heartbeat?: HeartbeatTransactionFields; constructor(params: TransactionParams); getEncodingSchema(): encoding.Schema; toEncodingData(): Map; static fromEncodingData(data: unknown): Transaction; private estimateSize; bytesToSign(): Uint8Array; toByte(): Uint8Array; rawSignTxn(sk: Uint8Array): Uint8Array; signTxn(sk: Uint8Array): Uint8Array; attachSignature(signerAddr: string | Address, signature: Uint8Array): Uint8Array; rawTxID(): Uint8Array; txID(): string; } /** * encodeUnsignedTransaction takes a completed txnBuilder.Transaction object, such as from the makeFoo * family of transactions, and converts it to a Buffer * @param transactionObject - the completed Transaction object */ export declare function encodeUnsignedTransaction(transactionObject: Transaction): Uint8Array; /** * decodeUnsignedTransaction takes a Uint8Array (as if from encodeUnsignedTransaction) and converts it to a txnBuilder.Transaction object * @param transactionBuffer - the Uint8Array containing a transaction */ export declare function decodeUnsignedTransaction(transactionBuffer: ArrayLike): Transaction;