/**
 * Lagoon public GraphQL API client.
 *
 * One batched query returns every visible Lagoon vault on a chain with
 * its full state (NAV, totalAssets/Supply, time-weighted APR windows,
 * deposit-mode flags). This is the data-of-record for Lagoon: pricing
 * and yield come straight from the API, so the public-data fetch needs
 * no multicall and no archival RPC (Lagoon's on-chain history is only
 * available via pruned RPCs / the subgraph — the API serves it
 * directly).
 *
 * Endpoint and chain coverage:
 *   https://api.lagoon.finance/query  (GraphQL, no auth)
 * Chains are gated by {@link LAGOON_CHAIN_IDS} so we don't fire a query
 * at chains where Lagoon has no factory. The API itself returns an empty
 * page for an unknown chain, but short-circuiting avoids the round-trip.
 */
export declare const LAGOON_API_URL = "https://api.lagoon.finance/query";
/**
 * Chains with a Lagoon vault factory (per
 * docs.lagoon.finance/resources/networks-and-addresses). Numeric chain
 * ids as strings. Extend as Lagoon deploys to more chains — the parser
 * is chain-agnostic, this set only decides whether to issue the query.
 */
export declare const LAGOON_CHAIN_IDS: Set<string>;
export declare const hasLagoonVaults: (chainId: string) => boolean;
/** Shape of a single `vaults.items[]` entry in the API response. */
export interface LagoonApiVault {
    address: string | null;
    name: string | null;
    symbol: string | null;
    decimals: number | null;
    isVisible: boolean | null;
    asset: {
        address: string | null;
        symbol: string | null;
        decimals: number | null;
    } | null;
    /** Curator(s) running the vault; first entry is the primary. */
    curators: ({
        id: string | null;
        name: string | null;
    } | null)[] | null;
    state: {
        totalAssets: string | null;
        totalAssetsUsd: number | null;
        totalSupply: string | null;
        pricePerShare: string | null;
        pricePerShareUsd: number | null;
        isAsyncOnly: boolean | null;
        syncMode: string | null;
        weeklyApr: {
            twrrNetApr: number | null;
        } | null;
        monthlyApr: {
            twrrNetApr: number | null;
        } | null;
        yearlyApr: {
            twrrNetApr: number | null;
        } | null;
        inceptionApr: {
            twrrNetApr: number | null;
        } | null;
    } | null;
}
/**
 * Fetch every visible Lagoon vault on a chain, paginating until the API
 * returns a short page. Returns the raw API items; normalization to
 * `LagoonVault` happens in `fetchPublic`.
 */
export declare function fetchLagoonApiVaults(chainId: string): Promise<LagoonApiVault[]>;
//# sourceMappingURL=api.d.ts.map