import { Contract } from 'ethers';
import { VaultProvider } from '../vaultProviders';
import { UniV3Range } from '../uniV3Range';
export declare abstract class MMStrategy<TVaultProvider extends VaultProvider<Contract, string>> {
    vaultProvider: TVaultProvider;
    constructor(vaultProvider: TVaultProvider);
    abstract update(): Promise<void>;
    abstract ready(): Promise<void>;
    updateRanges(): Promise<void>;
    getBalances(): Promise<{
        totals: [number, number];
        allocated: [number, number];
    }>;
    getRebalanceParams(burnRanges: UniV3Range[]): Promise<unknown[]>;
    getPrice(twapInterval: number): Promise<number>;
}
