import type { Account, Chain, Client, Transport } from 'viem'; import type { PublicActionsL2 as OpPublicActionsL2 } from 'viem/op-stack'; import type { BuildExecutingMessageParameters, BuildExecutingMessageReturnType, GetCrossDomainMessagesParameters, GetCrossDomainMessagesReturnType, GetCrossDomainMessageStatusParameters, GetCrossDomainMessageStatusReturnType, RelayCrossDomainMessageContractReturnType, RelayCrossDomainMessageParameters, SendCrossDomainMessageContractReturnType, SendCrossDomainMessageParameters, SendETHContractReturnType, SendETHParameters, SendSuperchainERC20ContractReturnType, SendSuperchainERC20Parameters } from '../actions/interop/index.js'; export type PublicInteropActionsL2 = { buildExecutingMessage: (parameters: BuildExecutingMessageParameters) => Promise; estimateSendCrossDomainMessageGas: (parameters: SendCrossDomainMessageParameters) => Promise; estimateRelayCrossDomainMessageGas: (parameters: RelayCrossDomainMessageParameters) => Promise; estimateSendSuperchainERC20Gas: (parameters: SendSuperchainERC20Parameters) => Promise; estimateSendETHGas: (parameters: SendETHParameters) => Promise; getCrossDomainMessages: (parameters: GetCrossDomainMessagesParameters) => Promise; getCrossDomainMessageStatus: (parameters: GetCrossDomainMessageStatusParameters) => Promise; simulateSendCrossDomainMessage: (parameters: SendCrossDomainMessageParameters) => Promise; simulateRelayCrossDomainMessage: (parameters: RelayCrossDomainMessageParameters) => Promise; simulateSendSuperchainERC20: (parameters: SendSuperchainERC20Parameters) => Promise; simulateSendETH: (parameters: SendETHParameters) => Promise; }; export type PublicActionsL2 = OpPublicActionsL2 & { /** scoped interop actions */ interop: PublicInteropActionsL2; }; export declare function publicActionsL2(): (client: Client) => PublicActionsL2;