import type { TellerPoolConfig } from '@1delta/data-sdk';
/**
 * Raw on-chain read for ONE Teller `LenderCommitmentGroup` pool. All amounts are
 * raw token base units; `minRateBps` is the pool's min borrow APR in BASIS
 * POINTS (10000 = 100%). Failed reads (allowFailure multicall) arrive as null.
 */
export interface TellerPoolRaw {
    /** The curated pool config (addresses + token metadata) from data-sdk. */
    config: TellerPoolConfig;
    /** getPrincipalAmountAvailableToBorrow — the live liquidity gate (raw). */
    available: bigint | null;
    /** totalPrincipalTokensCommitted — total supplied principal (raw). */
    committed: bigint | null;
    /** getMinInterestRate(0) — min borrow APR at current utilization (bps). */
    minRateBps: number | null;
    /** getCollateralRequiredForPrincipalAmount(1 principal token) — raw collateral units. */
    collateralPerPrincipal: bigint | null;
    /** getMaxLoanDuration() (seconds) — on-chain, authoritative over config. */
    maxLoanDuration: number | null;
    /** totalAssets() — ERC-4626 CURRENT principal TVL (V2/V3); null on V1 pools
     *  (fall back to `committed`). This is the correct "deposits" metric —
     *  `committed` is a cumulative lifetime counter. */
    totalAssets: bigint | null;
    /** getMarketId() — the MarketRegistry market this pool lends into. */
    marketId: bigint | null;
    /** Market requires borrower attestation (whitelist) to borrow. Undefined when
     *  the MarketRegistry read was unavailable. */
    requiresBorrowerAttestation?: boolean;
    /** MarketRegistry.isMarketOpen(marketId). Undefined when the read failed. */
    marketOpen?: boolean;
    /** Upfront market fee (bps) charged on the borrow (getMarketplaceFee). */
    marketFeeBps?: number;
    /** Global TellerV2 protocol fee (bps), added to the market fee. */
    protocolFeeBps?: number;
    /** Grace window (seconds) after a payment is due before DEFAULT +
     *  full-collateral liquidation (getPaymentDefaultDuration). */
    paymentDefaultDuration?: number;
}
/** Raw public-data batch: one multicall over the chain's curated pool list. */
export interface TellerMarketsRaw {
    chainId: string;
    pools: TellerPoolRaw[];
}
//# sourceMappingURL=types.d.ts.map