import { BigNumber } from 'ethers'; import { type MultiProvider } from '@hyperlane-xyz/sdk'; import { RebalancerConfig } from '../../config/RebalancerConfig.js'; import { type StrategyConfig } from '../../config/types.js'; import { RebalancerOrchestrator } from '../../core/RebalancerOrchestrator.js'; import { RebalancerContextFactory } from '../../factories/RebalancerContextFactory.js'; import type { ConfirmedBlockTags } from '../../interfaces/IMonitor.js'; import type { IStrategy } from '../../interfaces/IStrategy.js'; import type { InventoryMonitorConfig, Monitor } from '../../monitor/Monitor.js'; import type { IActionTracker } from '../../tracking/IActionTracker.js'; import type { ExplorerMessage } from '../../utils/ExplorerClient.js'; import { BALANCE_PRESETS, type DeployedAddresses, type Erc20InventoryDeployedAddresses, INVENTORY_SIGNER_PRESETS, type NativeDeployedAddresses, type TestChain } from '../fixtures/routes.js'; import { BaseLocalDeploymentManager } from './BaseLocalDeploymentManager.js'; import { ForkIndexer } from './ForkIndexer.js'; import { MockExplorerClient } from './MockExplorerClient.js'; import { MockExternalBridge } from './MockExternalBridge.js'; export interface PendingTransferParams { from: TestChain; to: TestChain; amount: BigNumber; warpRecipient?: string; } export interface TestRebalancerContext { orchestrator: RebalancerOrchestrator; strategy: IStrategy; tracker: IActionTracker; mockExplorer: MockExplorerClient; forkIndexer: ForkIndexer; multiProvider: MultiProvider; rebalancerConfig: RebalancerConfig; contextFactory: RebalancerContextFactory; inventoryConfig?: InventoryMonitorConfig; createMonitor(checkFrequency: number): Monitor; getConfirmedBlockTags(): Promise; } type BalancePreset = keyof typeof BALANCE_PRESETS; type ExecutionMode = 'propose' | 'execute'; type InventorySignerPreset = keyof typeof INVENTORY_SIGNER_PRESETS; type InventorySignerBalanceConfig = InventorySignerPreset | Partial>; type TestErc20InventoryConfig = { inventorySignerKey: string; erc20DeployedAddresses: Erc20InventoryDeployedAddresses; }; export declare class TestRebalancerBuilder { private readonly deploymentManager; private readonly multiProvider; private strategyConfig; private balanceConfig; private pendingTransfers; private mockTransfers; private executionMode; private inventoryConfig; private erc20InventoryConfig; private mockExternalBridge; private readonly logger; private inventorySignerBalanceConfig; constructor(deploymentManager: BaseLocalDeploymentManager, multiProvider: MultiProvider); withStrategy(config: StrategyConfig[]): this; withBalances(preset: BalancePreset | Record): this; withPendingTransfer(params: PendingTransferParams): this; withMockTransfer(message: ExplorerMessage): this; withExecutionMode(mode: ExecutionMode): this; withInventoryConfig(config: { inventorySignerKey: string; nativeDeployedAddresses: NativeDeployedAddresses; }): this; withErc20InventoryConfig(config: TestErc20InventoryConfig): this; withMockExternalBridge(bridge: MockExternalBridge): this; withInventorySignerBalances(config: InventorySignerBalanceConfig): this; private computeConfirmedBlockTags; build(): Promise; private getBalanceChains; private getBalances; private setupBalances; private getInventorySignerAddress; private setupInventorySignerBalances; private buildMockExplorerConfig; private getMonitoredRouteAddresses; private getWorkingMultiProvider; } export declare class TestRebalancer { static builder(deploymentManager: BaseLocalDeploymentManager, multiProvider: MultiProvider): TestRebalancerBuilder; } export {}; //# sourceMappingURL=TestRebalancer.d.ts.map