import { BigNumberish, ethers } from "ethers";
import { RewardConfig, SetAddress, UserRewards } from "./interfaces";
export declare function borrow(params: {
    underlying: string;
    trancheId: number;
    amount: ethers.BigNumber | number | string;
    referrer?: number;
    signer: ethers.Signer;
    network: string;
    isMax?: boolean;
    test?: boolean;
    providerRpc?: string;
}, callback?: () => Promise<any>): Promise<any>;
export declare function markReserveAsCollateral(params: {
    signer: ethers.Signer;
    network: string;
    asset: string;
    trancheId: number;
    useAsCollateral: boolean;
    test?: boolean;
    providerRpc?: string;
}, callback?: () => Promise<any>): Promise<any>;
export declare function withdraw(params: {
    asset: string;
    to?: string;
    trancheId: number;
    amount: number | ethers.BigNumberish;
    signer: ethers.Signer;
    referralCode?: number;
    network: string;
    isMax?: boolean;
    test?: boolean;
    providerRpc?: string;
}, callback?: () => Promise<any>): Promise<any>;
export declare function repay(params: {
    asset: string;
    trancheId: number;
    signer: ethers.Signer;
    amount: number | ethers.BigNumberish;
    network: string;
    isMax?: boolean;
    test?: boolean;
    providerRpc?: string;
}, callback?: () => Promise<any>): Promise<any>;
export declare function supply(params: {
    underlying: string;
    trancheId: number;
    amount: string;
    signer: ethers.Signer;
    network: string;
    isMax?: boolean;
    referrer?: number;
    collateral?: boolean;
    test?: boolean;
    providerRpc?: string;
}, callback?: () => Promise<any>): Promise<any>;
export declare function lendingPoolPause(params: {
    approvedSigner: ethers.Signer;
    setPause: boolean;
    network: string;
    tranche: number;
    test?: boolean;
    providerRpc?: string;
}, callback?: () => Promise<any>): Promise<any>;
export declare function initNewReserves(params: {
    trancheId: string;
    assetAddresses: string[];
    reserveFactors: string[];
    canBorrow: boolean[];
    canBeCollateral: boolean[];
    admin: ethers.Signer;
    incentivesController: string;
    network: string;
    test?: boolean;
    providerRpc?: string;
    chunks?: number;
}, callback?: () => Promise<any>): Promise<any>;
export declare function initTranche(params: {
    name: string;
    whitelisted: string[];
    blacklisted: string[];
    assetAddresses: string[];
    reserveFactors: string[];
    canBorrow: boolean[];
    canBeCollateral: boolean[];
    admin: ethers.Signer;
    treasuryAddress: string;
    incentivesController: string;
    network: string;
    test?: boolean;
    providerRpc?: string;
    chunks?: number;
}, callback?: () => Promise<any>): Promise<any>;
export declare function configureExistingTranche(params: {
    trancheId: string;
    newName?: string | undefined;
    isTrancheWhitelisted?: boolean | undefined;
    whitelisted?: SetAddress[];
    blacklisted?: SetAddress[];
    reserveFactors?: SetAddress[];
    canBorrow?: SetAddress[];
    canBeCollateral?: SetAddress[];
    isFrozen?: SetAddress[];
    admin: ethers.Signer;
    newTreasuryAddress?: string | undefined;
    network: string;
    test?: boolean;
    providerRpc?: string;
}, callback?: () => Promise<any>): Promise<void>;
export declare function claimIncentives(params: {
    incentivizedATokens: BigNumberish[];
    signer: ethers.Signer;
    to: BigNumberish;
    network: string;
    test?: boolean;
    providerRpc?: string;
}, callback?: () => Promise<any>): Promise<any>;
export declare function setIncentives(params: {
    rewardConfigs: RewardConfig[];
    signer: ethers.Signer;
    network: string;
    rewardsVaultSigner: ethers.Signer;
    test?: boolean;
    providerRpc?: string;
}, callback?: () => Promise<any>): Promise<any>;
export declare function getUserIncentives(params: {
    user: string;
    incentivizedATokens: string[];
    network: string;
    test?: boolean;
    providerRpc?: string;
}, callback?: () => Promise<any>): Promise<UserRewards>;
export declare function setExternalIncentives(params: {
    incentivizedATokens: string[];
    stakingContracts: string[];
    signer: ethers.Signer;
    network: string;
    test?: boolean;
    providerRpc?: string;
}, callback?: () => Promise<any>): Promise<any>;
export declare function removeExternalIncentives(params: {
    incentivizedAToken: string;
    signer: ethers.Signer;
    network: string;
    test?: boolean;
    providerRpc?: string;
}, callback?: () => Promise<any>): Promise<any>;
