import type { AbstractLevel } from 'abstract-level'; import type { Chain } from '../blockchain/index.ts'; import type { Config } from '../config.ts'; export interface ExecutionOptions { config: Config; stateDB?: AbstractLevel; metaDB?: AbstractLevel; /** Chain */ chain: Chain; } export declare abstract class Execution { config: Config; protected stateDB?: AbstractLevel; protected metaDB?: AbstractLevel; protected chain: Chain; running: boolean; started: boolean; /** * Create new execution module * @memberof module:sync/execution */ constructor(options: ExecutionOptions); /** * Runs an execution * * @returns number quantifying execution run */ abstract run(): Promise; /** * Starts execution */ open(): Promise; /** * Stop execution. Returns a promise that resolves once stopped. */ stop(): Promise; } //# sourceMappingURL=execution.d.ts.map