import { BigNumber, Contract, Event, providers } from "ethers";
import winston from "winston";
import { DepositWithBlock, FillWithBlock, FundsDepositedEvent, RefundRequestWithBlock } from "../../interfaces";
import { SpokePoolClient, SpokePoolUpdate } from "../SpokePoolClient";
import { EventManager } from "./MockEvents";
declare type Block = providers.Block;
export declare class MockSpokePoolClient extends SpokePoolClient {
    eventManager: EventManager;
    private events;
    private realizedLpFeePctOverride;
    private destinationTokenForChainOverride;
    depositIdAtBlock: number[];
    numberOfDeposits: number;
    blocks: Record<number, Block>;
    constructor(logger: winston.Logger, spokePool: Contract, chainId: number, deploymentBlock: number);
    setDefaultRealizedLpFeePct(fee: BigNumber | undefined): void;
    computeRealizedLpFeePct(depositEvent: FundsDepositedEvent): Promise<{
        realizedLpFeePct: BigNumber | undefined;
        quoteBlock: number;
    }>;
    setDestinationTokenForChain(chainId: number, token: string): void;
    getDestinationTokenForDeposit(deposit: DepositWithBlock): string;
    setLatestBlockSearched(blockNumber: number): void;
    addEvent(event: Event): void;
    setDepositIds(_depositIds: number[]): void;
    _getDepositIdAtBlock(blockTag: number): Promise<number>;
    _update(eventsToQuery: string[]): Promise<SpokePoolUpdate>;
    readonly eventSignatures: Record<string, string>;
    generateDeposit(deposit: DepositWithBlock): Event;
    generateFill(fill: FillWithBlock): Event;
    generateRefundRequest(request: RefundRequestWithBlock): Event;
    generateDepositRoute(originToken: string, destinationChainId: number, enabled: boolean): Event;
}
export {};
