import BigNumber from 'bignumber.js';
export declare enum FundType {
    Index = 0,
    Fund = 1,
    Future = 2,
    BinaryFuture = 3
}
export declare enum DerivativeStatus {
    New = 0,
    Active = 1,
    Paused = 2,
    Closed = 3
}
export declare enum DerivativeProviders {
    MARKET = "MarketProvider",
    PRICE = "PriceProvider",
    EXCHANGE = "ExchangeProvider",
    WITHDRAW = "WithdrawProvider",
    RISK = "RiskProvider",
    WHITELIST = "WhitelistProvider",
    FEE = "FeeProvider",
    REIMBURSABLE = "Reimbursable",
    REBALANCE = "RebalanceProvider",
    STEP = "StepProvider",
    LOCKER = "LockerProvider",
    BUYTOKENS = "BuyTokens",
    TOKENBROKEN = "TokenBroken",
    GETETH = "GetEth",
    CHECK_POSITION = "CheckPosition",
    CLEAR = "Clear",
    CHAINLINK = "ChainlinkOracle"
}
export declare enum WhitelistType {
    Investment = 0,
    Maintenance = 1,
    Admin = 2
}
export declare enum TxStatus {
    NEW = "NEW",
    PENDING = "PENDING",
    SUCCESS = "SUCCESS",
    FAIL = "FAIL",
    PAUSE = "PAUSE"
}
export declare enum IndexProductStatus {
    AVAILABLE = 0,
    WITHDRAWING = 1,
    REBALANCING = 2,
    BUYING = 3,
    SELLING_TOKENS = 4
}
export declare enum FundProductStatus {
    AVAILABLE = 0,
    WITHDRAWING = 1,
    SELLING_TOKENS = 2
}
export declare enum FutureProductStatus {
    AVAILABLE = 0,
    CHECK_POSITION = 1,
    CLEAR = 2,
    SELLING_TOKENS = -1,
    WITHDRAWING = -1
}
export declare enum FutureDirection {
    Long = -1,
    Short = 1
}
export declare enum FutureLockers {
    Clear = "Clear",
    CheckPosition = "CheckPosition"
}
export declare enum DerivativeTypeName {
    Index = "index",
    Fund = "fund"
}
export declare enum DerivativeType {
    Index = 0,
    Fund = 1,
    Future = 2
}
export interface MarketProduct {
    address: string;
    version: string;
    type: DerivativeType;
}
export interface WithdrawData {
    price: BigNumber;
    userRequests: string[];
    withdrawPending: BigNumber;
    locked: boolean;
}
export declare enum RebalanceStatus {
    Initial = 0,
    Calculated = 1,
    Recalculated = 2
}
export declare enum LoggingOptions {
    NONE = 0,
    ERROR = 1,
    WARNING = 2,
    INFO = 3,
    VERBOSE = 4
}
export declare enum TokenExchanges {
    KYBER = "Kyber",
    SHAPE_SHIFT = "Shape_shift"
}
export declare enum AbiName {
    INDEX_ABI = "OlympusIndex",
    FUND_ABI = "OlympusFund",
    WHITELIST_ABI = "WhitelistProvider",
    LOCKER_ABI = "Locker",
    FUTURE_ABI = "FutureContract",
    BINARY_FUTURE_ABI = "BinaryFuture",
    REBALANCE_ABI = "RebalanceProvider",
    MARKETPLACE_ABI = "Marketplace",
    WITHDRAW_ABI = "AsyncWithdraw",
    EXCHANGE_PROVIDER = "ExchangeProvider",
    STEP_PROVIDER = "StepProvider",
    TOKEN_BROKEN_PROVIDER = "TokenBroken",
    CHAINLINK_ABI = "Chainlink"
}
export declare enum TemplateType {
    Index = "Index",
    Fund = "Fund",
    Future = "Future"
}
export declare enum TemplateContractName {
    OlympusFund = "OlympusFund",
    OlympusIndex = "OlympusIndex",
    OlympusBasicFund = "OlympusBasicFund",
    OlympusBasicIndex = "OlympusBasicIndex",
    OlympusFastFund = "OlympusFund_Fast",
    OlympusFastIndex = "OlympusIndex_Fast",
    FutureContract = "FutureContract"
}
export declare type ABI = any[];
