import { AddressLookupTableAccount, Connection, Finality, Keypair, PublicKey, TransactionInstruction, VersionedTransactionResponse } from '@solana/web3.js';
import { SubAccount } from '../../types/proxy.types';
export declare const fetchSolanaTransaction: (connection: Connection, signature: string, finality?: Finality) => Promise<VersionedTransactionResponse | null>;
export declare const estimateComputeUnitLimit: (connection: Connection, payerKey: PublicKey, instructions: TransactionInstruction[], lookupTableAccounts?: AddressLookupTableAccount[]) => Promise<number>;
export declare const getAccountsFromInstructions: (instructions: TransactionInstruction[], payerKey?: PublicKey, additionalAccounts?: PublicKey[], lookupTableAccounts?: AddressLookupTableAccount[]) => PublicKey[];
export declare const sendV0Transaction: (connection: Connection, instructions: TransactionInstruction[], payer: Keypair, signers: Keypair[], lookupTableAccounts?: AddressLookupTableAccount[]) => Promise<string>;
export declare const ensureAtaExists: (connection: Connection, payer: Keypair, mintPubkey: PublicKey | null, owner: PublicKey) => Promise<PublicKey | null>;
type SendProxyV0TransactionParams = {
    connection: Connection;
    chainId: number;
    subAccount: SubAccount;
    payerPublicKey: PublicKey;
    instructions: TransactionInstruction[];
    lookupTableAccounts?: AddressLookupTableAccount[];
};
export declare const sendProxyV0Transaction: ({ connection, chainId, subAccount, payerPublicKey, instructions, lookupTableAccounts, }: SendProxyV0TransactionParams) => Promise<string>;
export declare const serializeProxyV0Transaction: (connection: Connection, payerPublicKey: PublicKey, instructions: TransactionInstruction[], lookupTableAccounts?: AddressLookupTableAccount[]) => Promise<string>;
export {};
