import { TypedEmitter } from 'tiny-typed-emitter';
import { ethers } from 'ethers';
import BigNumber from 'bignumber.js';
import { LeveragedPool, PoolSwapLibrary } from '@tracer-protocol/perpetual-pools-contracts/types';
import { PoolWatcherConstructorArgs, WatchedPool, PoolWatcherEvents } from '../types';
export default class PoolWatcher extends TypedEmitter<PoolWatcherEvents> {
    provider: ethers.providers.BaseProvider;
    watchedPool: WatchedPool;
    poolInstance: LeveragedPool;
    poolSwapLibrary: PoolSwapLibrary;
    poolAddress: string;
    chainId: string;
    commitmentWindowBuffer: number;
    isWatching: boolean;
    oraclePriceTransformer: (lastPrice: BigNumber, currentPrice: BigNumber) => BigNumber;
    ignoreEvents: {
        [eventName: string]: boolean;
    };
    constructor(args: PoolWatcherConstructorArgs);
    initializeWatchedPool(): Promise<void>;
    isCommitmentWindowStillOpen(updateIntervalId: number): Promise<boolean>;
    startWatchingPool(): Promise<void>;
}
