import { PublicKey } from '@solana/web3.js'; import { Domain } from '@hyperlane-xyz/utils'; import { SealevelInterchainGasPaymasterConfig } from '../../gas/adapters/serialization.js'; /** * Hyperlane Token Borsh Schema */ export declare class SealevelHyperlaneTokenData { readonly fields: any; bump: number; mailbox: Uint8Array; mailbox_pubkey: PublicKey; mailbox_process_authority: Uint8Array; mailbox_process_authority_pubkey: PublicKey; dispatch_authority_bump: number; decimals: number; remote_decimals: number; owner?: Uint8Array; owner_pub_key?: PublicKey; interchain_security_module?: Uint8Array; interchain_security_module_pubkey?: PublicKey; interchain_gas_paymaster?: SealevelInterchainGasPaymasterConfig; interchain_gas_paymaster_pubkey?: PublicKey; interchain_gas_paymaster_account_pubkey?: PublicKey; destination_gas?: Map; remote_routers?: Map; remote_router_pubkeys: Map; constructor(fields: any); } export declare const SealevelHyperlaneTokenDataSchema: Map; /** * Transfer Remote Borsh Schema */ export declare enum SealevelHypTokenInstruction { Init = 0, TransferRemote = 1, EnrollRemoteRouter = 2, EnrollRemoteRouters = 3, SetDestinationGasConfigs = 4, SetInterchainSecurityModule = 5, SetInterchainGasPaymaster = 6, TransferOwnership = 7 } /** * Human-readable names for Hyperlane Token instructions */ export declare const SealevelHypTokenInstructionName: Record; export declare class SealevelTransferRemoteInstruction { readonly fields: any; destination_domain: number; recipient: Uint8Array; recipient_pubkey: PublicKey; amount_or_id: number; constructor(fields: any); } export declare const SealevelTransferRemoteSchema: Map; export declare enum SealevelCCInstructionKind { SetCrossCollateralRouters = 0, TransferRemoteTo = 1, HandleLocal = 2, HandleLocalAccountMetas = 3 } export declare class SealevelCCTransferRemoteToInstruction { readonly fields: any; destination_domain: number; recipient: Uint8Array; amount_or_id: bigint; target_router: Uint8Array; constructor(fields: any); } export declare const SealevelCCTransferRemoteToSchema: Map; export declare class SealevelCCHandleLocalInstruction { readonly fields: any; sender_program_id: Uint8Array; message: Uint8Array; constructor(fields: any); } export declare const SealevelCCHandleLocalSchema: Map; /** * Encodes a TokenMessage matching the Rust `hyperlane_warp_route::TokenMessage`. * Layout: recipient (32 bytes) + amount (32 bytes, big-endian U256) + metadata (variable). */ export declare function encodeTokenMessage(recipient: Uint8Array, amount: bigint, metadata?: Uint8Array): Buffer; /** * RemoteRouterConfig - Configuration for a remote router * Matches: rust/sealevel/libraries/hyperlane-sealevel-connection-client/src/router.rs */ export declare class SealevelRemoteRouterConfig { domain: number; router: Uint8Array | null; get routerAddress(): string | null; constructor(fields: any); } export declare const SealevelRemoteRouterConfigSchema: { kind: "struct"; fields: (string | { kind: "option"; type: number[]; })[][]; }; /** * GasRouterConfig - Configuration for destination gas * Matches: rust/sealevel/libraries/hyperlane-sealevel-connection-client/src/gas_router.rs */ export declare class SealevelGasRouterConfig { domain: number; gas: bigint | null; constructor(fields: any); } export declare const SealevelGasRouterConfigSchema: { kind: "struct"; fields: (string | { kind: "option"; type: string; })[][]; }; /** * EnrollRemoteRouter instruction data * Matches: EnrollRemoteRouter(RemoteRouterConfig) */ export declare class SealevelEnrollRemoteRouterInstruction { config: SealevelRemoteRouterConfig; constructor(fields: any); } export declare const SealevelEnrollRemoteRouterInstructionSchema: Map; /** * EnrollRemoteRouters instruction data * Matches: EnrollRemoteRouters(Vec) */ export declare class SealevelEnrollRemoteRoutersInstruction { configs: SealevelRemoteRouterConfig[]; constructor(fields: any); } export declare const SealevelEnrollRemoteRoutersInstructionSchema: Map; /** * SetDestinationGasConfigs instruction data * Matches: SetDestinationGasConfigs(Vec) */ export declare class SealevelSetDestinationGasConfigsInstruction { configs: SealevelGasRouterConfig[]; constructor(fields: any); } export declare const SealevelSetDestinationGasConfigsInstructionSchema: Map; /** * SetInterchainSecurityModule instruction data * Matches: SetInterchainSecurityModule(Option) */ export declare class SealevelSetInterchainSecurityModuleInstruction { ism: Uint8Array | null; ismPubkey?: PublicKey; constructor(fields: any); } export declare const SealevelSetInterchainSecurityModuleInstructionSchema: Map; /** * InterchainGasPaymasterType with inner Pubkey for instruction serialization * This represents the tuple (Pubkey, InterchainGasPaymasterType) in Rust * Matches: rust/sealevel/programs/hyperlane-sealevel-igp/src/accounts.rs * * Note: The Rust enum InterchainGasPaymasterType has variants: * Igp(Pubkey) = 0 * OverheadIgp(Pubkey) = 1 * But in the warp route instruction, it's serialized as Option<(Pubkey, InterchainGasPaymasterType)> * where InterchainGasPaymasterType becomes (u8 discriminator, Pubkey) */ export declare class SealevelIgpConfig { programId: Uint8Array; igpType: number; igpAccount: Uint8Array; programIdPubkey?: PublicKey; igpAccountPubkey?: PublicKey; get igpTypeName(): string; constructor(fields: any); } export declare const SealevelIgpConfigSchema: { kind: "struct"; fields: (string | number[])[][]; }; /** * SetInterchainGasPaymaster instruction data * Matches: SetInterchainGasPaymaster(Option<(Pubkey, InterchainGasPaymasterType)>) */ export declare class SealevelSetInterchainGasPaymasterInstruction { igpConfig: SealevelIgpConfig | null; constructor(fields: any); } export declare const SealevelSetInterchainGasPaymasterInstructionSchema: Map; /** * TransferOwnership instruction data for warp routes * Matches: TransferOwnership(Option) */ export declare class SealevelHypTokenTransferOwnershipInstruction { newOwner: Uint8Array | null; newOwnerPubkey?: PublicKey; constructor(fields: any); } export declare const SealevelHypTokenTransferOwnershipInstructionSchema: Map; //# sourceMappingURL=serialization.d.ts.map