import { LiquityBranchConfig } from '@1delta/data-sdk';
import { Call } from '../../../utils/multicall';
export interface LiquityDiscoveredTrove {
    /** decimal uint256 troveId */
    troveId: string;
    zombie: boolean;
}
export interface LiquityDiscovery {
    /** Discovered troves per branch, index-aligned with `liquityBranchesByChain`. */
    perBranch: LiquityDiscoveredTrove[][];
    at: number;
}
export declare const getCachedLiquityTroves: (chainId: string, lender: string, account: string) => LiquityDiscovery | undefined;
/** Candidate trove ids for one user: direct + per-zapper salted, as decimal strings. */
export declare function liquityCandidateTroveIds(account: string, zappers: string[]): string[];
/** Multicall slots one branch consumes (keep in sync with the parser). */
export declare const liquityBranchCallCount: (branch: LiquityBranchConfig, troveCount: number) => number;
/**
 * Async build: runs the discovery status multicall itself, caches the found
 * per-branch trove ids, then returns the data-phase call set executed by the
 * shared sharded multicall (against the merged Liquity ABI from `getAbi`):
 *
 * per branch (config order):
 *   troves × [TroveManager.getLatestTroveData(id), TroveNFT.ownerOf(id)]
 *   + StabilityPool.[getCompoundedBoldDeposit, getDepositorYieldGainWithPending,
 *     getDepositorCollGain, stashedColl](account)
 *   + CollSurplusPool.getCollateral(account)        (when configured)
 */
export declare const buildLiquityUserCall: (chainId: string, lender: string, account: string) => Promise<Call[]>;
//# sourceMappingURL=userCallBuild.d.ts.map