import { Contract, providers } from "ethers";
import { FillStatus, FillWithBlock, RelayData } from "../../interfaces";
import { BigNumber } from "../../utils";
type BlockTag = providers.BlockTag;
export { populateV3Relay, getTimestampForBlock, fillStatusArray } from "../evm/SpokeUtils";
export declare function getTimeAt(spokePool: Contract, blockNumber: number): Promise<number>;
export declare function getMaxFillDeadlineInRange(spokePool: Contract, startBlock: number, endBlock: number): Promise<number>;
export declare function getDepositIdAtBlock(_contract: Contract, _blockTag: number): Promise<BigNumber>;
export declare function findDepositBlock(spokePool: Contract, depositId: BigNumber, lowBlock: number, highBlock?: number): Promise<number | undefined>;
export declare function relayFillStatus(spokePool: Contract, relayData: RelayData, blockTag?: BlockTag, destinationChainId?: number): Promise<FillStatus>;
export declare function findFillBlock(spokePool: Contract, relayData: RelayData, lowBlockNumber: number, highBlockNumber?: number): Promise<number | undefined>;
export declare function findFillEvent(spokePool: Contract, relayData: RelayData, lowBlockNumber: number, highBlockNumber?: number): Promise<FillWithBlock | undefined>;
