import { BorshAccountsCoder } from "@coral-xyz/anchor";
import { Message, PublicKey, TransactionInstruction } from "@solana/web3.js";
import { AcrossPlusMessage } from "../types.svm";
/**
 * Extended Anchor accounts coder to handle large account data.
 */
export declare class LargeAccountsCoder<A extends string = string> extends BorshAccountsCoder<A> {
    private getAccountLayouts;
    encode<T = any>(accountName: A, account: T): Promise<Buffer>;
}
/**
 * Helper to encode MulticallHandler transactions.
 */
export declare class MulticallHandlerCoder {
    readonly compiledMessage: Message;
    private readonly layout;
    constructor(instructions: TransactionInstruction[], payerKey?: PublicKey);
    private static coderArg;
    private static coderTypes;
    get readOnlyLen(): number;
    get compiledKeyMetas(): {
        pubkey: PublicKey;
        isSigner: boolean;
        isWritable: boolean;
    }[];
    encode(): Buffer<ArrayBuffer>;
}
/**
 * Helper to encode Across+ messages.
 */
export declare class AcrossPlusMessageCoder {
    private acrossPlusMessage;
    constructor(acrossPlusMessage: AcrossPlusMessage);
    private static coderArg;
    private static coderTypes;
    encode(): Buffer<ArrayBuffer>;
}
