import { type Logger } from 'pino'; import { IRegistry } from '@hyperlane-xyz/registry'; import { MultiProtocolProvider, MultiProvider, type Token, WarpCore, type WarpCoreConfig } from '@hyperlane-xyz/sdk'; import { ProtocolType } from '@hyperlane-xyz/utils'; import { type RebalancerConfig } from '../config/RebalancerConfig.js'; import { RebalancerOrchestrator } from '../core/RebalancerOrchestrator.js'; import type { ExternalBridgeRegistry } from '../interfaces/IExternalBridge.js'; import type { IRebalancer } from '../interfaces/IRebalancer.js'; import type { IStrategy } from '../interfaces/IStrategy.js'; import { Metrics } from '../metrics/Metrics.js'; import { type InventoryMonitorConfig, Monitor } from '../monitor/Monitor.js'; import type { IActionTracker } from '../tracking/IActionTracker.js'; import { InflightContextAdapter } from '../tracking/InflightContextAdapter.js'; import { type IExplorerClient } from '../utils/ExplorerClient.js'; export declare class RebalancerContextFactory { private readonly config; private readonly warpCore; private readonly tokensByChainName; private readonly multiProvider; private readonly multiProtocolProvider; private readonly registry; private readonly logger; private readonly inventorySignerKeysByProtocol?; /** * @param config - The rebalancer config * @param warpCore - An instance of `WarpCore` configured for the specified `warpRouteId`. * @param tokensByChainName - A map of chain->token to ease the lookup of token by chain * @param multiProvider - MultiProvider instance (for movable collateral operations) * @param multiProtocolProvider - MultiProtocolProvider instance (with mailbox metadata) * @param registry - IRegistry instance * @param logger - Logger instance */ private constructor(); /** * @param config - The rebalancer config * @param multiProvider - MultiProvider instance (for movable collateral operations) * @param multiProtocolProvider - MultiProtocolProvider instance (optional, created from multiProvider if not provided) * @param registry - IRegistry instance * @param logger - Logger instance */ static create(config: RebalancerConfig, multiProvider: MultiProvider, multiProtocolProvider: MultiProtocolProvider | undefined, registry: IRegistry, logger: Logger, inventorySignerKeysByProtocol?: Partial>, warpCoreConfigOverride?: WarpCoreConfig): Promise; getWarpCore(): WarpCore; getTokenForChain(chainName: string): Token | undefined; createMetrics(coingeckoApiKey?: string): Promise; createMonitor(checkFrequency: number, inventoryConfig?: InventoryMonitorConfig): Monitor; createStrategy(metrics?: Metrics): Promise; private createMovableCollateralRebalancer; createActionTracker(explorerUrlOrClient?: string | IExplorerClient): Promise<{ tracker: IActionTracker; adapter: InflightContextAdapter; }>; /** * Creates inventory components for inventory-based rebalancing. * Returns null if inventory config is not available. * * @param actionTracker - ActionTracker instance for tracking inventory actions * @param externalBridgeRegistryOverride - Optional override for external bridge registry (for testing) */ private createInventoryRebalancerAndConfig; private buildExternalBridgeRegistry; /** * Creates all rebalancers based on config execution types. * Returns an array of rebalancers (movableCollateral and/or inventory) * along with metadata needed for monitor and orchestrator. * * @param actionTracker - ActionTracker instance for tracking actions * @param metrics - Optional Metrics instance * @param externalBridgeRegistryOverride - Optional override for external bridge registry (for testing) */ createRebalancers(actionTracker: IActionTracker, metrics?: Metrics, externalBridgeRegistryOverride?: Partial): Promise<{ rebalancers: IRebalancer[]; externalBridgeRegistry: Partial; inventoryConfig?: InventoryMonitorConfig; }>; /** * Creates a RebalancerOrchestrator with all required dependencies. */ createOrchestrator(options: { strategy: IStrategy; actionTracker: IActionTracker; inflightContextAdapter: InflightContextAdapter; rebalancers: IRebalancer[]; externalBridgeRegistry: Partial; metrics?: Metrics; }): RebalancerOrchestrator; private hasMovableCollateralChains; private getInitialTotalCollateral; } //# sourceMappingURL=RebalancerContextFactory.d.ts.map