import type { LegacyKeypair, SvmTransaction } from './types.js';
interface LegacyAccountMeta {
    pubkey: {
        toBase58(): string;
    };
    isSigner: boolean;
    isWritable: boolean;
}
interface LegacyTransactionInstruction {
    programId: {
        toBase58(): string;
    };
    keys: LegacyAccountMeta[];
    data: Uint8Array;
}
/** Structural interface matching @solana/web3.js Transaction. */
export interface LegacyTransaction {
    instructions: LegacyTransactionInstruction[];
}
/**
 * Converts a legacy @solana/web3.js Transaction to the SvmTransaction format
 * expected by SvmSigner. The SetComputeUnitLimit instruction is extracted into
 * `computeUnits` (the signer recreates it). All other instructions — including
 * SetComputeUnitPrice — are preserved as-is.
 *
 * @param legacyTx  Legacy Transaction returned by SDK adapters.
 * @param extraSigners  Keypairs that partial-signed the legacy tx (e.g. random
 *   wallet for message storage PDAs). Converted to @solana/kit TransactionSigners.
 */
export declare function convertLegacySolanaTransaction(legacyTx: LegacyTransaction, extraSigners?: readonly LegacyKeypair[]): Promise<SvmTransaction>;
/**
 * Detects whether an object is a legacy @solana/web3.js Transaction
 * by checking for the `programId` property on its first instruction.
 */
export declare function isLegacySolanaTransaction(tx: unknown): tx is LegacyTransaction;
export {};
//# sourceMappingURL=legacy-compat.d.ts.map