import { BytesLike } from 'ethers';
import { tSmartBCHAddress, tStringCurrencyUnits, InterestRate, PermitSignature } from '.';
export declare type LPDepositParamsType = {
    user: tSmartBCHAddress;
    reserve: tSmartBCHAddress;
    amount: tStringCurrencyUnits;
    onBehalfOf?: tSmartBCHAddress;
    referralCode?: string;
};
export declare type LPWithdrawParamsType = {
    user: tSmartBCHAddress;
    reserve: tSmartBCHAddress;
    amount: tStringCurrencyUnits;
    onBehalfOf?: tSmartBCHAddress;
    aTokenAddress?: tSmartBCHAddress;
};
export declare type LPBorrowParamsType = {
    user: tSmartBCHAddress;
    reserve: tSmartBCHAddress;
    amount: tStringCurrencyUnits;
    interestRateMode: InterestRate;
    debtTokenAddress?: tSmartBCHAddress;
    onBehalfOf?: tSmartBCHAddress;
    referralCode?: string;
};
export declare type LPRepayParamsType = {
    user: tSmartBCHAddress;
    reserve: tSmartBCHAddress;
    amount: tStringCurrencyUnits;
    interestRateMode: InterestRate;
    onBehalfOf?: tSmartBCHAddress;
};
export declare type LPSwapBorrowRateMode = {
    user: tSmartBCHAddress;
    reserve: tSmartBCHAddress;
    interestRateMode: InterestRate;
};
export declare type LPSetUsageAsCollateral = {
    user: tSmartBCHAddress;
    reserve: tSmartBCHAddress;
    usageAsCollateral: boolean;
};
export declare type LPLiquidationCall = {
    liquidator: tSmartBCHAddress;
    liquidatedUser: tSmartBCHAddress;
    debtReserve: tSmartBCHAddress;
    collateralReserve: tSmartBCHAddress;
    purchaseAmount: tStringCurrencyUnits;
    getAToken?: boolean;
    liquidateAll?: boolean;
};
export declare type LPSwapCollateral = {
    user: tSmartBCHAddress;
    flash?: boolean;
    fromAsset: tSmartBCHAddress;
    fromAToken: tSmartBCHAddress;
    toAsset: tSmartBCHAddress;
    fromAmount: tStringCurrencyUnits;
    minToAmount: tStringCurrencyUnits;
    permitSignature?: PermitSignature;
    swapAll: boolean;
    onBehalfOf?: tSmartBCHAddress;
    referralCode?: string;
    augustus: tSmartBCHAddress;
    swapCallData: BytesLike;
};
export declare type LPRepayWithCollateral = {
    user: tSmartBCHAddress;
    fromAsset: tSmartBCHAddress;
    fromAToken: tSmartBCHAddress;
    assetToRepay: tSmartBCHAddress;
    repayWithAmount: tStringCurrencyUnits;
    repayAmount: tStringCurrencyUnits;
    permitSignature?: PermitSignature;
    repayAllDebt?: boolean;
    rateMode: InterestRate;
    onBehalfOf?: tSmartBCHAddress;
    referralCode?: string;
    flash?: boolean;
    useBchPath?: boolean;
};
export declare type LPFlashLoan = {
    user: tSmartBCHAddress;
    receiver: tSmartBCHAddress;
    assets: tSmartBCHAddress[];
    amounts: tStringCurrencyUnits[];
    modes: InterestRate[];
    onBehalfOf?: tSmartBCHAddress;
    referralCode?: string;
};
export declare type LPFlashLiquidation = {
    user: tSmartBCHAddress;
    collateralAsset: tSmartBCHAddress;
    borrowedAsset: tSmartBCHAddress;
    debtTokenCover: string;
    liquidateAll: boolean;
    initiator: tSmartBCHAddress;
    useBchPath: boolean;
};
