import { IChain } from '../constants';
import { UniV3Range } from './uniV3Range';
import { Contract, Signer } from 'ethers';
import { RebRecord, UniV3MMOptions } from './types';
import { UniV3MM } from './uniV3MM';
export declare abstract class uniV3MMMaxLp extends UniV3MM {
    vault: Contract;
    wallet: Signer;
    feeTier: number;
    chain: IChain;
    useMovingAvg: boolean;
    rebalances: RebRecord[];
    prevBalances: number[];
    leftoverRebalance: number[];
    tempState: {
        rebalances: RebRecord[];
        prevBalances: number[];
        leftoverRebalance: number[];
    };
    constructor(vault: Contract, wallet: Signer, feeTier: number, // uniswap fee tier
    chain: IChain, options?: UniV3MMOptions, useMovingAvg?: boolean);
    initPosition(): Promise<void>;
    rebalanceRanges(): Promise<any>;
    getRangeAmounts(mainLp: number, extraBase: number, extraQuote: number): {
        secBaseValue: number;
        secQuoteValue: number;
    };
    getCostBasis(): RebRecord;
    updateRebalanceRecord(): void;
    findRangeAmounts(ranges: UniV3Range[], mainValue: number): Promise<{
        updatedRanges: UniV3Range[];
        leftoverRebalance: number[];
    }>;
    getExpectedCostBasis(low: UniV3Range, mainRange: UniV3Range, high: UniV3Range): Promise<{
        expectedCostBasis: number;
        leftoverRebalance: number[];
    }>;
}
