///
import { Block, Chain, DataAccess, BlockHeader, Transaction, StateStore } from '@liskhq/lisk-chain';
import { Database } from '@liskhq/lisk-db';
import { BaseModule } from '../modules';
import { Keys } from './fixtures';
import { EventJSON, GenesisConfig } from '../types';
import { Consensus } from '../engine/consensus';
import { MethodContext } from '../state_machine';
import { Generator } from '../engine/generator';
type Options = {
genesis?: GenesisConfig;
modules?: Record>;
databasePath?: string;
passphrase?: string;
};
interface BlockProcessingParams {
modules?: BaseModule[];
options?: Options;
initValidators?: Buffer[];
logLevel?: string;
}
type DecodedEventJSON = EventJSON & {
decodedData: Record;
};
export interface BlockProcessingEnv {
createBlock: (transactions?: Transaction[], timestamp?: number) => Promise;
getConsensus: () => Consensus;
getConsensusStore: () => StateStore;
getGenerator: () => Generator;
getGenesisBlock: () => Block;
getChain: () => Chain;
getMethodContext: () => MethodContext;
getBlockchainDB: () => Database;
process: (block: Block) => Promise;
processUntilHeight: (height: number) => Promise;
getLastBlock: () => Block;
getNextValidatorKeys: (blockHeader: BlockHeader, distance?: number) => Promise;
getDataAccess: () => DataAccess;
getEvents: (height: number, module?: string, name?: string) => Promise;
getChainID: () => Buffer;
invoke: (path: string, params?: Record) => Promise;
cleanup: (config: Options) => void;
}
export declare const getBlockProcessingEnv: (params: BlockProcessingParams) => Promise;
export {};