import { type Address } from "viem"; import type { LucidlyClient } from "./client.js"; import type { DeployParams, Deployed } from "./types.js"; import { type PreflightReport } from "./safety.js"; export interface VaultView { vault: Address; name: string; symbol: string; decimals: number; totalSupply: bigint; rate: bigint; } export declare class VaultModule { private readonly c; constructor(c: LucidlyClient); setActive(vault: Address): void; /** * Deploy the full Boring Vault stack and wire all roles, matching the proven * Foundry engine (DeployLucidlyVault.s.sol) step-for-step. */ /** Run the pre-mainnet deploy checklist without broadcasting. */ preflight(params: DeployParams): Promise; deploy(params: DeployParams): Promise; /** * Irreversibly hand control to `owner` (a multisig/timelock): grant it the OWNER role, renounce * each contract's Auth ownership (so only the shared RolesAuthority governs), then transfer the * RolesAuthority itself to `owner`. Run this *after* any admin-only setup that still needs the * deployer to own the RolesAuthority — e.g. seeding the root, wiring a queue, enabling integrations. */ finalize(owner: Address | string, d?: Deployed): Promise; private setRoleCapability; private setUserRole; private wireCapabilities; private wireUsers; private configure; view(vault?: Address): Promise; /** AUM in base-asset units = totalSupply * rate / 10**shareDecimals. */ aum(vault?: Address): Promise; }