import { Saturn } from '@saturnnetwork/saturn.js';
import { Provider } from 'ethers/providers';
import { BigNumber } from 'bignumber.js';
import { ActionType } from '../actiontypes';
export interface MarketMakerConfig {
    saturn: Saturn;
    provider: Provider;
    blockchain: string;
    token: string;
    fundMinimum: BigNumber;
    tokenLimit: BigNumber;
    spread: BigNumber;
    dustCutoff: BigNumber;
    bandSize: BigNumber;
}
export declare class MarketMaker {
    saturn: Saturn;
    blockchain: string;
    token: string;
    config: MarketMakerConfig;
    botAddress: string;
    constructor(config: MarketMakerConfig, owner: string);
    getActions(): Promise<Array<ActionType>>;
    private newOrders;
    private newBuys;
    private newSells;
    private cleanupOrders;
    private pruneSells;
    private pruneBuys;
    private pluralizedOrders;
    private checkArbOpportunity;
    private ensureValidOrderBook;
    private printMarketHealth;
    private plotOrderBook;
    private orderBook;
    private fetchOrdersFor;
    private weightedMidMarketPrice;
    private bestSellOrder;
    private bestBuyOrder;
    private bestSellPrice;
    private bestBuyPrice;
    private spread;
    private sellDepth;
    private buyDepth;
    private availableEther;
    private availableTokens;
    private etherLockedForAddress;
    private tokensLockedForAddress;
    private tokenDecimals;
    private pow;
}
