import type { Address, Instruction, TransactionSigner } from '@solana/kit';
export interface MailboxInitData {
    localDomain: number;
    defaultIsm: Address;
    maxProtocolFee: bigint;
    protocolFee: {
        fee: bigint;
        beneficiary: Address;
    };
}
/**
 * Builds a mailbox Init instruction.
 *
 * Account layout (from Rust init_instruction):
 *  0. [writable]        System program
 *  1. [writable,signer] Payer
 *  2. [writable]        Inbox PDA
 *  3. [writable]        Outbox PDA
 */
export declare function buildInitMailboxInstruction(programId: Address, payer: TransactionSigner, data: MailboxInitData): Promise<Instruction>;
/**
 * Builds a mailbox InboxSetDefaultIsm instruction.
 *
 * Account layout (from Rust set_default_ism_instruction):
 *  0. [writable]        Inbox PDA
 *  1. [readonly]        Outbox PDA
 *  2. [writable,signer] Owner
 */
export declare function buildSetDefaultIsmInstruction(programId: Address, owner: Address, newIsm: Address): Promise<Instruction>;
/**
 * Builds a mailbox TransferOwnership instruction.
 *
 * Account layout (from Rust transfer_ownership_instruction):
 *  0. [writable]        Outbox PDA
 *  1. [writable,signer] Current owner
 */
export declare function buildTransferMailboxOwnershipInstruction(programId: Address, owner: Address, newOwner: Address | null): Promise<Instruction>;
//# sourceMappingURL=mailbox-tx.d.ts.map