import { type Logger } from 'pino'; import { type ChainMap, type Token } from '@hyperlane-xyz/sdk'; import { type MinAmountStrategyConfig, RebalancerStrategyOptions } from '../config/types.js'; import type { RawBalances, Route, StrategyRoute } from '../interfaces/IStrategy.js'; import { type Metrics } from '../metrics/Metrics.js'; import type { BridgeConfigWithOverride } from '../utils/bridgeUtils.js'; import { BaseStrategy, type Delta } from './BaseStrategy.js'; /** * Strategy implementation that rebalance based on minimum amounts * It ensures each chain has at least the specified minimum amount */ export declare class MinAmountStrategy extends BaseStrategy { readonly name = RebalancerStrategyOptions.MinAmount; private readonly config; protected readonly logger: Logger; constructor(config: MinAmountStrategyConfig, tokensByChainName: ChainMap, initialTotalCollateral: bigint, logger: Logger, bridgeConfigs: ChainMap, metrics?: Metrics); /** * Gets balances categorized by surplus and deficit based on minimum amounts and targets * - For absolute values: Uses exact token amounts * - For relative values: Uses percentages of total balance across all chains * * Simulates both types of rebalances before calculating surpluses/deficits: * - pendingRebalances: in-flight intents (origin tx confirmed, add to destination only) * - proposedRebalances: routes from earlier strategies (subtract from origin AND add to destination) * * This prevents over-rebalancing when multiple strategies run in sequence. */ protected getCategorizedBalances(rawBalances: RawBalances, pendingRebalances?: Route[], proposedRebalances?: StrategyRoute[]): { surpluses: Delta[]; deficits: Delta[]; }; protected getTokenByChainName(chainName: string): Token; private validateAmounts; private formatCanonicalAmount; } //# sourceMappingURL=MinAmountStrategy.d.ts.map