import * as viem from 'viem'; import { Address, Hex, Chain, PublicClient, Transport, WalletClient, Account, TestClient, PublicRpcSchema, LocalAccount } from 'viem'; import { NexusAccount } from '@biconomy/abstractjs-canary'; import { Options } from 'get-port'; import { BundlerClient, SmartAccount } from 'viem/account-abstraction'; import { TestClientMode } from 'viem/clients/createTestClient'; declare const DETERMINISTIC_DEPLOYER: Address; declare const CREATE2_FACTORY_DEPLOYER_ADDRESS: Address; declare const ENTRYPOINT_V07_ADDRESS: Address; declare const ENTRY_POINT_SIMULATIONS_ADDRESS: Address; declare const NEXUS_BOOTSTRAP_ADDRESS_1_2_1_MEE200: Address; declare const MEE_VALIDATOR_ADDRESS_1_0_1_MEE200: Address; declare const NEXUS_ACCOUNT_FACTORY_ADDRESS_MEE200: Address; declare const NEXUS_IMPLEMENTATION_ADDRESS_1_2_0_MEE200: Address; declare const NEXUS_BOOTSTRAP_ADDRESS_1_2_1_MEE210: Address; declare const MEE_VALIDATOR_ADDRESS_1_0_3_MEE210: Address; declare const NEXUS_ACCOUNT_FACTORY_ADDRESS_MEE210: Address; declare const NEXUS_IMPLEMENTATION_ADDRESS_1_2_0_MEE210: Address; declare const COMPOSABLE_MODULE_ADDRESS: Address; declare const SMART_SESSION_ADDRESS: Address; declare const SUDO_POLICY_ADDRESS: Address; declare const SPENDING_LIMITS_POLICY_ADDRESS: Address; declare const UNIVERSAL_ACTION_POLICY_ADDRESS: Address; declare const TIME_FRAME_POLICY_ADDRESS: Address; declare const VALUE_LIMIT_POLICY_ADDRESS: Address; declare const OWNABLE_VALIDATOR_ADDRESS: Address; declare const OWNABLE_EXECUTOR_ADDRESS: Address; declare const MINTABLE_ADDRESS: Address; declare const COUNTER_ADDRESS: Address; declare const TOKEN_WITH_PERMIT: Address; declare const MOCK_SIGNATURE_VALIDATOR: Address; declare const MOCK_CALLEE: Address; declare const MOCK_TOKEN: Address; declare const ALL_ADDRESSES: Record; declare const BYTECODES: Record; type DeployContractsArgs = { rpcUrl: string; chain: Chain; privateKey?: Hex; }; declare const deployContracts: ({ rpcUrl, chain, privateKey }: DeployContractsArgs) => Promise; declare const RHINESTONE_REGISTRY_CREATECALL: Hex; declare const ENTRY_POINT_V07_CREATECALL: Hex; declare const ENTRY_POINT_SIMULATIONS_CREATECALL: Hex; type FundAccountsArgs = { rpcUrl: string; chain: Chain; privateKey?: Hex; }; declare const fundAccounts: ({ rpcUrl, chain, privateKey }: FundAccountsArgs) => Promise; type NetworkArgs = { rpcPort?: number; rpcUrl?: string; chainId?: string; name?: string; privateKey?: Hex; forkUrl?: string; }; type Network = Awaited>; declare const toNetwork: (parameters?: NetworkArgs) => Promise<{ instance: any; chain: Chain; rpcUrl: string; rpcPort: number; chainId: string; name: string; privateKey: `0x${string}`; }>; type Bundler = Awaited>; type ToBundlerParameters = NetworkArgs & { port?: number; }; declare const toBundler: (parameters: ToBundlerParameters) => Promise<{ instance: any; port: number; url: string; }>; type ToEcosystemParameters = { chainLength?: number; forkUrl?: string; }; type Infra = { network: Network; bundler: Bundler; }; type Ecosystem = { meeNode: any; infras: Infra[]; }; declare const toEcosystem: (parameters?: ToEcosystemParameters) => Promise<{ meeNode: { chainIds: string[]; url: string; }; infras: { network: { instance: any; chain: viem.Chain; rpcUrl: string; rpcPort: number; chainId: string; name: string; privateKey: `0x${string}`; }; bundler: { instance: any; port: number; url: string; }; }[]; }>; type toMeeNodeParameters = { infras: Infra[]; }; type MeeNode = Awaited>; declare const toMeeNode: ({ infras }: toMeeNodeParameters) => Promise<{ chainIds: string[]; url: string; }>; declare const getRandomNumber: (min?: number, max?: number) => number; declare const sleep: (ms: number) => Promise; declare const toClients: ({ rpcUrl, chain, privateKey }: { rpcUrl: string; chain: Chain; privateKey?: Hex; }) => Promise<{ publicClient: PublicClient; walletClients: WalletClient[]; testClient: TestClient; }>; declare global { var __BICONOMY_USED_PORTS__: number[]; } declare const PORT_OPTS: Options; declare const getFreePort: (max: number, min: number, options?: Options) => Promise; declare const getFundedAccount: () => { account: Account; privateKey: Hex; }; type Url = `https://${string}` | `http://${string}`; type MinimalVars = { privateKey: Hex; chainId: number; bundlerUrl: Url; }; declare const getEnvVars: (prefix?: string) => MinimalVars; type NetworkConfig = { account: LocalAccount; chain: Chain; walletClient: WalletClient; publicClient: PublicClient; bundlerClient: BundlerClient; nexusAccount: NexusAccount; }; declare const validateNetwork: ({ chain, account, nexusAccount, bundlerClient, publicClient, walletClient }: NetworkConfig) => Promise; export { ALL_ADDRESSES, BYTECODES, type Bundler, COMPOSABLE_MODULE_ADDRESS, COUNTER_ADDRESS, CREATE2_FACTORY_DEPLOYER_ADDRESS, DETERMINISTIC_DEPLOYER, type DeployContractsArgs, ENTRYPOINT_V07_ADDRESS, ENTRY_POINT_SIMULATIONS_ADDRESS, ENTRY_POINT_SIMULATIONS_CREATECALL, ENTRY_POINT_V07_CREATECALL, type Ecosystem, type FundAccountsArgs, type Infra, MEE_VALIDATOR_ADDRESS_1_0_1_MEE200, MEE_VALIDATOR_ADDRESS_1_0_3_MEE210, MINTABLE_ADDRESS, MOCK_CALLEE, MOCK_SIGNATURE_VALIDATOR, MOCK_TOKEN, type MeeNode, type MinimalVars, NEXUS_ACCOUNT_FACTORY_ADDRESS_MEE200, NEXUS_ACCOUNT_FACTORY_ADDRESS_MEE210, NEXUS_BOOTSTRAP_ADDRESS_1_2_1_MEE200, NEXUS_BOOTSTRAP_ADDRESS_1_2_1_MEE210, NEXUS_IMPLEMENTATION_ADDRESS_1_2_0_MEE200, NEXUS_IMPLEMENTATION_ADDRESS_1_2_0_MEE210, type Network, type NetworkArgs, type NetworkConfig, OWNABLE_EXECUTOR_ADDRESS, OWNABLE_VALIDATOR_ADDRESS, PORT_OPTS, RHINESTONE_REGISTRY_CREATECALL, SMART_SESSION_ADDRESS, SPENDING_LIMITS_POLICY_ADDRESS, SUDO_POLICY_ADDRESS, TIME_FRAME_POLICY_ADDRESS, TOKEN_WITH_PERMIT, type ToBundlerParameters, type ToEcosystemParameters, UNIVERSAL_ACTION_POLICY_ADDRESS, type Url, VALUE_LIMIT_POLICY_ADDRESS, deployContracts, fundAccounts, getEnvVars, getFreePort, getFundedAccount, getRandomNumber, sleep, toBundler, toClients, toEcosystem, toMeeNode, type toMeeNodeParameters, toNetwork, validateNetwork };