import { type Logger } from 'pino'; import type { ChainMap, Token } from '@hyperlane-xyz/sdk'; import { RebalancerStrategyOptions, type WeightedStrategyConfig } 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 weights * It distributes funds across chains based on their weights */ export declare class WeightedStrategy extends BaseStrategy { readonly name = RebalancerStrategyOptions.Weighted; private readonly config; private readonly totalWeight; protected readonly logger: Logger; constructor(config: WeightedStrategyConfig, logger: Logger, bridgeConfigs: ChainMap, metrics?: Metrics, tokensByChainName?: ChainMap); /** * Gets balances categorized by surplus and deficit based on weights * * 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[]; }; } //# sourceMappingURL=WeightedStrategy.d.ts.map