import type { Address, Hex } from "viem"; /** * Typed client for the `lucidlypro-indexer` GraphQL API. Mirrors the queries the Lucidly Pro UI runs * (`idxVaults`, `idxRateHistory`, `idxDeposits`, `idxShareTransfers`, `idxPolicyRequests`) so the CLI, * the agent, and downstream tooling speak to exactly the same shape the UI does. * * Set `url` to your Ponder endpoint (e.g. http://localhost:42069 or your prod URL); the client * appends `/graphql` if it isn't already there. Reads are stateless POSTs — no signer required. */ export interface IndexedVault { chainId: number; nonce: number; vault: Address; strategist: Address; baseAsset: Address; rolesAuthority: Address; manager: Address; policyManager: Address; accountant: Address; teller: Address; rate: string | null; policyCount: number; depositCount: number; createdAt: string; } export interface IndexedRateUpdate { at: string; newRate: string; oldRate: string; txHash: Hex; } export interface IndexedDeposit { nonce: string; receiver: Address; depositAsset: Address; depositAmount: string; shareAmount: string; at: string; txHash: Hex; } export interface IndexedShareTransfer { from: Address; to: Address; amount: string; at: string; txHash: Hex; } export interface IndexedPolicyRequest { chainId: number; protocolId: Hex; target: Address; selector: Hex; note: string; requestedBy: Address; requestedAt: string; txHash: Hex; } export declare class IndexerClient { private url; constructor(url: string); /** GraphQL endpoint (auto-suffixes /graphql). */ endpoint(): string; /** Liveness probe — returns true on HTTP 200 from /health. */ health(): Promise; /** Generic GraphQL POST. Returns `data` or null on failure (mirrors the UI's defensive style). */ query(query: string, variables?: Record): Promise; vaults(limit?: number): Promise; rateHistory(vault: Address, limit?: number): Promise; deposits(vault: Address, limit?: number): Promise; shareTransfers(vault: Address, limit?: number): Promise; policyRequests(limit?: number): Promise; }