import { TheGraph } from './thegraph';
import { Candle, GraphToken, TickData, UniswapSwap } from './types';
import { Chain } from './chains';
export declare type PoolDetails = {
    token0: {
        name: string;
        symbol: string;
        id: string;
        decimals: number;
    };
    token1: {
        name: string;
        symbol: string;
        id: string;
        decimals: number;
    };
    id: string;
    feeTier: number;
    createdAtTimestamp: string;
    createdAtBlockNumber: string;
    totalValueLockedUSD: string;
    collectedFeesUSD: string;
};
export declare enum TransactionType {
    SWAP = "SWAP",
    MINT = "MINT",
    BURN = "BURN"
}
export declare class UniswapV3 extends TheGraph {
    private location;
    chain: Chain;
    constructor(chain: Chain);
    findTokensBySymbol(tokenName: string, exact?: boolean): Promise<{
        data: {
            tokens: Array<GraphToken>;
        };
    }>;
    findTokens(tokenName: string): Promise<{
        data: {
            tokens: Array<GraphToken>;
        };
    }>;
    findTokensByAddress(address: string): Promise<{
        data: {
            tokens: Array<GraphToken>;
        };
    }>;
    findPoolsByToken0(tokenAddress: string, complementaryTokenAddresses?: Array<string>): Promise<{
        data: {
            pools: Array<PoolDetails>;
        };
    }>;
    findPoolsByToken1(tokenAddress: string): Promise<{
        data: {
            pools: Array<PoolDetails>;
        };
    }>;
    findPoolsByToken(tokenAddress: string): Promise<Array<PoolDetails>>;
    getPoolDetails(poolAddress: string): Promise<PoolDetails>;
    displayTargetEntityDetails(poolDetails: PoolDetails): void;
    getHistoricalData(poolAddress: string, startDate: Date, endDate: Date, sleep: number): Promise<UniswapSwap[]>;
    getPreTestData(poolAddress: string, startDate: Date, endDate: Date, sleep: number): Promise<Array<UniswapSwap>>;
    private fetchUniswapCandlesData;
    private retrieveSwaps;
    private retrieveBurns;
    private retrieveMints;
    private getTimeDiff;
    getCandles(data: TickData[], candleSize: string): Candle[];
    feeTierToTickSpacing: (feeTier: string) => number;
}
