import { Transaction } from './interfaces/Transaction.cjs'; declare abstract class AbstractTransactionBuilder { /** * The transaction being built by this builder. */ protected transaction: Partial; /** * Tags to add to the transaction. */ protected transaction_tags: Record; constructor(attributes?: Partial; }>); /** * Set the transaction's attributes using the given attributes. This method * exists to set attributes in one go as opposed to doing it with chained * methods. An example use case is if a transaction is received in JSON fromat * and can be used to set most of the fields in this builder. Instead of * adding the fields one by one with chained methods, it can be done using * this single method. * @param attributes The transaction attributes in question. * @returns `this` instance for further method chaining. */ attributes(attributes?: Partial): this; /** * Build the transaction. * @returns The built transaction. */ build(): Tx; /** * Add tags to the transaction. * @param tags The tags in question. * @returns `this` instance for further method chaining. */ tags(tags?: Record): this; /** * Set the target address to transfer the AR to. * @param address The target address to transfer the AR to. * @returns `this` instance for further method chaining. */ target(address: string): this; /** * Set the `quantity` field. * @param quantity The value to set as the field. * @returns `this` instance for further method chaining. */ quantity(quantity: Transaction["quantity"]): this; /** * Get the tags being added to this transaction as the name-value array. * @returns An array that conforms to the expected transaction tags schema. */ protected getTagsAsToNameValueArray(): { name: string; value: string; }[]; } export { AbstractTransactionBuilder };