import type { Hex, Address } from "viem"; import { type MerkleTree } from "./merkle.js"; import { SYUSD_ROOT, SYUSD_METADATA, SYUSD_LEAVES, type SyUsdLeaf } from "./syusdBaseline.js"; export { SYUSD_ROOT, SYUSD_METADATA, SYUSD_LEAVES, type SyUsdLeaf }; /** The syUSD baseline Merkle tree (memoized). Its root equals the published SYUSD_ROOT. */ export declare function syUsdTree(): MerkleTree; /** Ordered syUSD leaf digests (real + padding), used to extend a vault's tree while keeping syUSD. */ export declare function syUsdLeafDigests(): readonly Hex[]; /** Merkle proof for the syUSD leaf at `index` against SYUSD_ROOT. */ export declare function syUsdProofFor(index: number): Hex[]; /** A syUSD leaf re-pointed to a target vault (own decoder + recipients). */ export interface RepointedLeaf extends SyUsdLeaf { digest: Hex; } export interface RegeneratedSyUsd { /** Manage root over the regenerated leaves (differs from SYUSD_ROOT). */ root: Hex; /** Full 1024 ordered digests (real leaves regenerated, padding unchanged). */ digests: Hex[]; /** The 227 regenerated real leaves. */ leaves: RepointedLeaf[]; /** Number of address substitutions applied (decoder field + arg replacements). */ substitutions: number; } /** * Regenerate the syUSD strategy set for a specific vault: every leaf's decoder field becomes the * target decoder, and syUSD's vault/accountant addresses in the arguments are re-pointed to the * target vault/accountant (recipient/onBehalfOf -> target vault). Produces a new root + valid proofs. */ export declare function regenerateSyUsdBaseline(target: { vault: Address; decoder: Address; accountant?: Address; }): RegeneratedSyUsd; /** Find a syUSD whitelisted leaf by description substring, selector, or target. */ export declare function findSyUsdLeaf(q: { description?: string; selector?: string; target?: string; }): SyUsdLeaf | undefined;