import { LenderToLenderCrossPoolMeta, UserData } from '../utils/types';
/** Per-position fixed-term detail attached to the position row (strings raw). */
export interface ExactlyUserFixedPosition {
    /** unix maturity */
    maturity: number;
    /** 'deposit' | 'borrow' */
    kind: 'deposit' | 'borrow';
    /** face principal (raw asset units) */
    principal: string;
    /** face fee locked at trade time (raw asset units) */
    fee: string;
    /** live exit value now: withdraw-now / repay-now incl. discount or overdue
     *  penalty (raw asset units) — from the Previewer */
    previewValue: string;
    /** true once maturity passed and the position is still open (borrows accrue
     *  the per-second late penalty until repaid) */
    overdue: boolean;
}
/**
 * Returns a [converter, expectedCallCount] tuple for Exactly user data.
 *
 * Layout mirrors `buildExactlyUserCall`: ONE `Previewer.exactly(account)`
 * result. Emits one `UserData` per market key `EXACTLY_<MARKET_ADDR>`
 * (multi-market), each with a single sub-account:
 *
 *  - the market's OWN asset row: deposits = floating deposit + Σ fixed-deposit
 *    `previewValue` (current withdraw-now value); debt = floating borrow +
 *    Σ fixed-borrow `previewValue` (current repay-now value, incl. overdue
 *    penalties); `fixedPositions` carries the per-maturity detail;
 *  - CROSS-MARGIN collateral rows: when the user has DEBT in this market, every
 *    other entered market with a deposit is added as a collateral row (the
 *    public data defines these sibling entries with pairwise adjust-factor
 *    LTVs), so health/borrow-capacity compute correctly downstream.
 *
 * Caveat: with debt open in SEVERAL Exactly markets at once, each market's
 * per-key health sees the full shared collateral (cross-margin) — per-market
 * health is then optimistic; the true account constraint is the Auditor's
 * global check. Single-borrow-market accounts (the norm) are exact.
 */
export declare const getExactlyUserDataConverter: (_lender: string, chainId: string, account: string, meta?: LenderToLenderCrossPoolMeta) => [(data: any[]) => {
    [lender: string]: UserData;
} | undefined, number];
//# sourceMappingURL=userCallParse.d.ts.map