import { AccountSigner } from '../../signHelpers.js'; import { AccountTransactionV0, AccountTransactionV1 } from '../index.js'; import { type Signable, type SignableV0, type SignableV1 } from './signable.js'; type PreFinalized = AccountTransactionV0.Unsigned | AccountTransactionV1.Unsigned; export declare function preFinalized(transaction: SignableV1): AccountTransactionV1.Unsigned; export declare function preFinalized(transaction: SignableV0): AccountTransactionV0.Unsigned; export declare function preFinalized(transaction: Signable): PreFinalized; /** * A finalized account transaction, which is ready for submission. */ export type Finalized = AccountTransactionV0.Type | AccountTransactionV1.Type; /** * Signs a transaction using the provided signer, calculating total energy cost and creating a _finalized transaction. * * This is the same as doing `Transaction.finalize(await Transaction.sign(transaction))` * * @param transaction the unsigned transaction to sign * @param signer the account signer containing keys and signature logic * * @returns a promise resolving to the signed transaction * @throws if too many signatures are included in the transaction */ export declare function signAndFinalize(transaction: Signable, signer: AccountSigner): Promise; /** * Finalizes a _pre-finalized transaction, creating a _finalized_ transaction which is ready for submission. * * @param transaction the signed transaction * * @returns a corresponding _finalized_ transaction * @throws if too many signatures are included in the transaction */ export declare function finalize(transaction: Signable): Finalized; /** * Gets the transaction hash that is used to look up the status of a transaction. * @param transaction the transaction to hash * @returns the sha256 hash of the serialized block item kind, signatures, header, type and payload */ export declare function getAccountTransactionHash(transaction: Finalized): Uint8Array; /** * Serializes a _finalized_ transaction as a block item for submission to the chain. * @param transaction the signed transaction to serialize * @returns the serialized block item as a byte array */ export declare function serializeBlockItem(transaction: Finalized): Uint8Array; export {};