///
import { Tag } from "@ganache/ethereum-utils";
import { Data, Quantity } from "@ganache/utils";
import { GanacheLevelUp } from "../../database";
import { Tree } from "./tree";
export type Request = (method: string, params: any[]) => Promise;
export type FindOptions = ({
gte: Buffer;
lt?: Buffer;
} | {
gt: Buffer;
lt?: Buffer;
} | {
gt: Buffer;
lte?: Buffer;
} | {
gte: Buffer;
lte?: Buffer;
} | {
gte?: Buffer;
lt: Buffer;
} | {
gt?: Buffer;
lt: Buffer;
} | {
gt?: Buffer;
lte: Buffer;
} | {
gte?: Buffer;
lte: Buffer;
}) & {
reverse?: boolean;
};
export declare function getBlockNumberFromParams(method: string, params: any[]): any;
export declare function setDbVersion(db: GanacheLevelUp, version: Buffer): Promise;
export declare function resolveTargetAndClosestAncestor(db: GanacheLevelUp, request: Request, targetHeight: Quantity, targetHash: Data): Promise<{
targetBlock: Tree;
closestAncestor: Tree;
previousClosestAncestor: Tree;
}>;
export declare function findRelated(db: GanacheLevelUp, request: Request, options: FindOptions): AsyncGenerator;
/**
*
* @param height - Search only before this block height (exclusive)
* @param upTo - Search up to this key (inclusive)
* @returns the closest known ancestor, or `upTo` if we know of no ancestors
*/
export declare function findClosestAncestor(db: GanacheLevelUp, request: Request, height: Quantity, upTo: Buffer): Promise;
/**
*
* @param height - Search only after this block height (exclusive)
* @returns the closest known descendants, or null
*/
export declare function findClosestDescendants(db: GanacheLevelUp, request: Request, height: Quantity): AsyncGenerator;
export declare function getBlockByNumber(request: Request, blockNumber: Quantity | Tag): Promise;
//# sourceMappingURL=helpers.d.ts.map