import { BlockFinder, type Block, type BlockTimeAverage, type BlockFinderHints } from "../../utils/BlockFinder";
import { SVMProvider } from "./";
interface SVMBlock extends Block {
}
/**
 * @description Compute the average slot time over a slot range.
 * @dev Solana slots are all defined to be ~400ms away from each other += a small deviation, so we can hardcode this.
 * @returns Average number of seconds per slot
 */
export declare function averageBlockTime(): Pick<BlockTimeAverage, "average" | "blockRange">;
export declare class SVMBlockFinder extends BlockFinder<SVMBlock> {
    private readonly provider;
    private readonly blocks;
    constructor(provider: SVMProvider, blocks?: SVMBlock[]);
    /**
     * @notice Gets the latest slot whose timestamp is <= the provided timestamp.
     * @param number Timestamp timestamp to search.
     * @param hints Optional low and high slot to bound the search space.
     */
    getBlockForTimestamp(timestamp: number | string, hints?: BlockFinderHints): Promise<SVMBlock>;
    /**
     * For a given slot, resolve the current or preceding timestamp.
     * Not all Solana slots have an associated block timestamp; in case of no block at the requested slot, the most
     * immediate preceding block timestamp will be used. Note that this may return an eventually-incorrect timestamp for
     * future slots.
     */
    private getBlockTime;
    private getLatestBlock;
    private getBlock;
    private findBlock;
}
export {};
