import { TransactionRequest } from "@ethersproject/providers";
import { IonicAsset, LiquidationStrategy } from "@ionicprotocol/types";
import { BigNumber, BigNumberish } from "ethers";
import { PoolLens } from "../../../typechain/PoolLens";
import { IonicBase } from "../../IonicSdk";
export declare const SCALE_FACTOR_ONE_18_WEI: BigNumber;
export declare const SCALE_FACTOR_UNDERLYING_DECIMALS: (asset: IonicAsset) => BigNumber;
export type ExtendedPoolAssetStructOutput = PoolLens.PoolAssetStructOutput & {
    borrowBalanceWei?: BigNumber;
    supplyBalanceWei?: BigNumber;
};
export type EncodedLiquidationTx = {
    method: string;
    args: Array<any>;
    value: BigNumber;
};
export type PoolUserWithAssets = {
    assets: ExtendedPoolAssetStructOutput[];
    account: string;
    totalBorrow: BigNumberish;
    totalCollateral: BigNumberish;
    health: BigNumberish;
    debt: Array<any>;
    collateral: Array<any>;
};
export type LiquidatablePool = {
    comptroller: string;
    liquidations: EncodedLiquidationTx[];
};
export type ErroredPool = {
    comptroller: string;
    msg: string;
    error?: any;
};
export type PoolUserStruct = {
    account: string;
    totalBorrow: BigNumberish;
    totalCollateral: BigNumberish;
    health: BigNumberish;
};
export type PublicPoolUserWithData = {
    comptroller: string;
    users: PoolUserStruct[];
    closeFactor: BigNumber;
    liquidationIncentive: BigNumber;
};
export declare function fetchGasLimitForTransaction(sdk: IonicBase, method: string, tx: TransactionRequest): Promise<BigNumber>;
export declare const logLiquidation: (sdk: IonicBase, borrower: PoolUserWithAssets, exchangeToTokenAddress: string, liquidationAmount: BigNumber, liquidationTokenSymbol: string, liquidationStrategy: LiquidationStrategy, debtFundingStrategies: any[]) => void;
