import { TellerPoolConfig } from '@1delta/data-sdk';
import { Call } from '../../../utils/multicall';
/**
 * User-data call build for Teller. Borrower loans ("bids") are keyed by a
 * uint256 bidId and a user can hold MANY, so this is a DISCOVERY-first build
 * (async, same pattern as the Liquity family):
 *
 *  1. `TellerV2.getBorrowerActiveLoanIds(account)` → the active bidIds;
 *  2. `TellerV2.getLoanLender(bidId)` per id → attribute each bid to a curated
 *     pool (the pool is the lender-of-record after `acceptFundsForAcceptBid`);
 *  3. data phase per kept bid: `bids`, `calculateAmountOwed(now)`,
 *     `CollateralManager.getCollateralAmount`, `isLoanDefaulted`.
 *
 * The discovered layout is stashed in a short-lived module cache so the parser
 * (a separate phase fed only the multicall results) can slice it — same trick
 * as Liquity / the Lista broker caches.
 */
export declare const TELLER_CALLS_PER_BID = 4;
export interface TellerDiscoveredBid {
    /** decimal uint256 bidId */
    bidId: string;
    /** the curated pool this bid was funded by */
    pool: TellerPoolConfig;
}
export interface TellerDiscovery {
    bids: TellerDiscoveredBid[];
    at: number;
}
export declare const getCachedTellerBids: (chainId: string, account: string) => TellerDiscovery | undefined;
export declare const buildTellerUserCall: (chainId: string, _lender: string, account: string) => Promise<Call[]>;
//# sourceMappingURL=userCallBuild.d.ts.map