import { PublicKey } from '@solana/web3.js';
/**
 * Mailbox instruction types matching Rust enum
 * See: rust/sealevel/programs/mailbox/src/instruction.rs
 */
export declare enum SealevelMailboxInstructionType {
    INIT = 0,
    INBOX_PROCESS = 1,
    INBOX_SET_DEFAULT_ISM = 2,
    INBOX_GET_RECIPIENT_ISM = 3,
    OUTBOX_DISPATCH = 4,
    OUTBOX_GET_COUNT = 5,
    OUTBOX_GET_LATEST_CHECKPOINT = 6,
    OUTBOX_GET_ROOT = 7,
    GET_OWNER = 8,
    TRANSFER_OWNERSHIP = 9,
    CLAIM_PROTOCOL_FEES = 10,
    SET_PROTOCOL_FEE_CONFIG = 11
}
export declare const SealevelMailboxInstructionName: Record<SealevelMailboxInstructionType, string>;
/**
 * SetDefaultIsm instruction data
 * Matches: rust/sealevel/programs/mailbox/src/instruction.rs
 */
export declare class SealevelMailboxSetDefaultIsmInstruction {
    newIsm: Uint8Array;
    newIsmPubkey: PublicKey;
    constructor(fields: any);
}
export declare const SealevelMailboxSetDefaultIsmInstructionSchema: Map<any, any>;
/**
 * TransferOwnership instruction data
 * Matches: rust/sealevel/programs/mailbox/src/instruction.rs
 */
export declare class SealevelMailboxTransferOwnershipInstruction {
    newOwner: Uint8Array | null;
    newOwnerPubkey?: PublicKey;
    constructor(fields: any);
}
export declare const SealevelMailboxTransferOwnershipInstructionSchema: Map<any, any>;
//# sourceMappingURL=serialization.d.ts.map