import { type Address, type Hex } from "viem"; import type { LucidlyClient } from "./client.js"; export declare const LUCIDLY_NAV_BOT_PER_CHAIN: Record; export type NavRowStatus = "pushed" | "skipped" | "error" | "dry-run-ok"; export interface NavRow { chainId: number; vault: Address; nonce?: number; baseAsset: Address; baseDecimals: number; idle: bigint; protocols: { protocolId: Hex; tvlAdapter: Address; valueInBase: bigint; }[]; aum: bigint; totalSupply: bigint; currentRate: bigint; proposedRate: bigint; withinBounds: boolean; status: NavRowStatus; reason?: string; txHash?: Hex; } export interface NavRunReport { ranAt: number; signer?: Address; chainId: number; totalVaults: number; pushed: number; skipped: number; errors: number; rows: NavRow[]; } export interface NavPipelineConfig { /** Don't push the tx; compute + safety-filter only. CLI default = true. */ dryRun?: boolean; /** Restrict to specific vault addresses (matched case-insensitive). */ vaults?: Address[]; /** Restrict to specific per-chain nonces (from the indexer). */ nonces?: number[]; /** Hard cap on vaults processed in one pass. */ limit?: number; } export declare class NavPipelineModule { private readonly client; constructor(client: LucidlyClient); /** Run one pass on the client's active chain. */ runOnce(cfg?: NavPipelineConfig): Promise; /** Per-vault: read state, compute, safety-filter, maybe push. */ private _processVault; }