/// <reference types="node" />
import { CompliedInstruction, SerializedInstruction } from '../config/types';
declare type MessageHeader = {
    numRequiredSignatures: number;
    numReadonlySignedAccounts: number;
    numReadonlyUnsignedAccounts: number;
};
declare type MessageArgs = {
    header: MessageHeader;
    accountKeys: string[];
    recentBlockhash: string;
    instructions: CompliedInstruction[];
};
export declare class Message {
    header: MessageHeader;
    accountKeys: string[];
    recentBlockhash: string;
    instructions: CompliedInstruction[];
    constructor(message: MessageArgs);
    serializeHeader(): string;
    encodedLength(): {
        keyCount: number[];
        instructionCount: number[];
        instructions: SerializedInstruction[];
    };
    serialize(): Buffer;
    serializeTransferMessage(): string;
    serializeCreateAndTransferSPLToken(): string;
    reservePaddingAccountKeys(maxAccountKeyLength: number): string[];
    serializeDelegateAndCreateAccountWithSeed(): string;
    serializeUndelegate(): string;
    serializeWithdraw(): string;
    /**
     * Decode a compiled message into a Message object.
     */
    static from(buffer: Buffer | Uint8Array | Array<number>): Message;
}
export {};
