import { AcrossConfigStoreClient, HubPoolClient, SpokePoolClient } from "../clients";
import { ProposedRootBundle } from "../interfaces";
/**
 * Return block number for `chain` in `bundleEvaluationBlockNumbers` using the mapping
 * in `chainIdListForBundleEvaluationBlockNumbers` to figure out which index in `bundleEvaluationBlockNumbers`
 * the block for `chain` is
 * @param bundleEvaluationBlockNumbers Usually, the bundle end blocks proposed in a root bundle.
 * @param chain The chain to look up block for
 * @param chainIdListForBundleEvaluationBlockNumbers The hardcoded sequence of chain IDs. For example:
 * [1, 10, 137, 288, 42161] implies that if we're looking for the block for chain 137, it's at index 2 in
 * `bundleEvaluationBlockNumbers`.
 * @returns The block for `chain` in `bundleEvaluationBlockNumbers`.
 */
export declare function getBlockForChain(bundleEvaluationBlockNumbers: number[], chain: number, chainIdListForBundleEvaluationBlockNumbers: number[]): number;
/**
 * Similar concept as `getBlockForChain`, but returns the block range for `chain` in `blockRanges`.
 * @param blockRanges
 * @param chain
 * @param chainIdListForBundleEvaluationBlockNumbers
 * @returns
 */
export declare function getBlockRangeForChain(blockRanges: number[][], chain: number, chainIdListForBundleEvaluationBlockNumbers: number[]): number[];
/**
 * Return bundle block range for `rootBundle` whose bundle end blocks were included in the proposal.
 * This amounts to reconstructing the bundle range start block.
 * @param rootBundle Root bundle to return bundle block range for
 * @returns blockRanges: number[][], [[startBlock, endBlock], [startBlock, endBlock], ...]
 */
export declare function getImpliedBundleBlockRanges(hubPoolClient: HubPoolClient, configStoreClient: AcrossConfigStoreClient, rootBundle: ProposedRootBundle): number[][];
export declare function blockRangesAreInvalidForSpokeClients(spokePoolClients: Record<number, SpokePoolClient>, blockRanges: number[][], chainIdListForBundleEvaluationBlockNumbers: number[]): boolean;
