import { Address, WalletClient, SimulateContractParameters, TransactionReceipt } from 'viem';
import { GenericPublicClient } from '../utils/genericPublicClient.js';
export declare function registerCanonicalInterchainTokenCall(tokenAddress: string): SimulateContractParameters;
export declare function deployRemoteCanonicalInterchainTokenCall(tokenAddress: Address, destinationChain: string, gasValue: bigint): SimulateContractParameters;
export declare function estimateRemoteDeploymentGas(sourceChainName: string, destinationChain: string, executeData: `0x${string}`): Promise<bigint>;
export declare function registerCanonicalInterchainToken(tokenAddress: Address, walletClient: WalletClient, publicClient: GenericPublicClient): Promise<{
    hash: `0x${string}`;
}>;
export declare function deployRemoteCanonicalInterchainToken(tokenAddress: Address, destinationChain: string, gasValue: bigint, walletClient: WalletClient, publicClient: GenericPublicClient): Promise<{
    hash: `0x${string}`;
    receipt: TransactionReceipt;
}>;
export declare function registerAndDeployCanonicalInterchainTokenMulticall(tokenAddress: Address, destinationChains: string[], walletClient: WalletClient, publicClient: GenericPublicClient): Promise<{
    hash: `0x${string}`;
}>;
