import { DeploymentsExtension } from "hardhat-deploy/types";
import { HardhatRuntimeEnvironment } from "hardhat/types";
export declare enum InterestRateModels {
    WhitePaper = 0,
    JumpRate = 1
}
export type TokenConfig = {
    isMock: true;
    name: string;
    symbol: string;
    decimals: number;
} | {
    isMock: false;
    symbol: string;
    tokenAddress: string;
};
export type VTokenConfig = {
    name: string;
    symbol: string;
    asset: string;
    rateModel: string;
    baseRatePerYear: string;
    multiplierPerYear: string;
    jumpMultiplierPerYear: string;
    kink_: string;
    collateralFactor: string;
    reserveFactor: string;
    initialSupply: string;
    supplyCap: string;
    borrowCap: string;
    vTokenReceiver: string;
};
export type DeploymentConfig = {
    tokensConfig: TokenConfig[];
    marketsConfig: VTokenConfig[];
};
export type NetworkConfig = {
    hardhat: DeploymentConfig;
    bsctestnet: DeploymentConfig;
    bscmainnet: DeploymentConfig;
};
export declare const getGlobalConfig: () => Promise<NetworkConfig>;
export declare function getConfig(networkName: string): Promise<DeploymentConfig>;
export declare function getTokenConfig(tokenSymbol: string, tokens: TokenConfig[]): TokenConfig;
export declare const getContractAddressOrNullAddress: (deployments: DeploymentsExtension, name: string) => Promise<string>;
export declare const onlyHardhat: () => (hre: HardhatRuntimeEnvironment) => Promise<boolean>;
export declare const skipRemoteNetworks: () => (hre: HardhatRuntimeEnvironment) => Promise<boolean>;
export declare const skipSourceNetworks: ({ hardhat }?: {
    hardhat: boolean;
}) => (hre: HardhatRuntimeEnvironment) => Promise<boolean>;
