import { type Address, type Blockhash, type Instruction, type TransactionSigner } from '@solana/kit';
import type { SvmInstruction, SvmTransaction } from './types.js';
export declare const DEFAULT_WRITE_CHUNK_SIZE = 850;
export declare const DEFAULT_PRIORITY_FEE_MICRO_LAMPORTS = 1;
export declare function getComputeBudgetInstructions(units?: number, microLamports?: number): SvmInstruction[];
export declare function buildTransactionMessage(params: {
    instructions: SvmInstruction[];
    feePayer: TransactionSigner;
    recentBlockhash: Blockhash;
    lastValidBlockHeight: bigint;
    computeUnits?: number;
    priorityFeeMicroLamports?: number;
}): Omit<import("@solana/kit").ExcludeTransactionMessageWithinSizeLimit<Omit<Omit<Omit<Readonly<{
    instructions: readonly Instruction<string, readonly (import("@solana/kit").AccountLookupMeta<string, string> | import("@solana/kit").AccountMeta<string>)[]>[];
    version: 0;
}>, "instructions"> & import("@solana/kit").TransactionMessageWithinSizeLimit & {
    instructions: readonly [];
}, "feePayer"> & import("@solana/kit").TransactionMessageWithFeePayerSigner<string, TransactionSigner<string>>, "lifetimeConstraint"> & import("@solana/kit").TransactionMessageWithBlockhashLifetime>, "instructions"> & {
    readonly instructions: readonly SvmInstruction[];
};
export declare function transactionToInstructions(tx: SvmTransaction): SvmInstruction[];
/**
 * Serializes an SvmTransaction into base58-encoded formats compatible
 * with the Squads multisig UI.
 *
 * Produces two representations:
 * - `transaction_base58`: full unsigned v0 transaction (signatures + message)
 * - `message_base58`: compiled message only (no signature wrapper)
 *
 * Both use a default (all-zeros) blockhash since these are unsigned
 * transactions intended for offline / multisig signing workflows.
 */
export declare function serializeUnsignedTransaction(instructions: SvmInstruction[], feePayer: Address): {
    transactionBase58: string;
    messageBase58: string;
};
//# sourceMappingURL=tx.d.ts.map