/// <reference types="node" />
import { BlockAssets, Transaction } from '@liskhq/lisk-chain';
import { Logger } from '../logger';
import { EventQueue } from './event_queue';
import { PrefixedStateReadWriter } from './prefixed_state_read_writer';
import { TransactionContext } from './transaction_context';
import { BlockAfterExecuteContext, BlockExecuteContext, BlockVerifyContext, BlockHeader, Validator } from './types';
export interface ContextParams {
    chainID: Buffer;
    stateStore: PrefixedStateReadWriter;
    contextStore: Map<string, unknown>;
    header: BlockHeader;
    assets: BlockAssets;
    logger: Logger;
    eventQueue: EventQueue;
    transactions?: ReadonlyArray<Transaction>;
}
export declare class BlockContext {
    private readonly _stateStore;
    private readonly _chainID;
    private readonly _logger;
    private readonly _eventQueue;
    private readonly _header;
    private readonly _assets;
    private readonly _contextStore;
    private _transactions?;
    private _nextValidators?;
    constructor(params: ContextParams);
    get transactions(): ReadonlyArray<Transaction>;
    setTransactions(transactions: Transaction[]): void;
    getBlockVerifyExecuteContext(): BlockVerifyContext;
    getBlockExecuteContext(): BlockExecuteContext;
    getBlockAfterExecuteContext(): BlockAfterExecuteContext;
    getTransactionContext(tx: Transaction): TransactionContext;
    get eventQueue(): EventQueue;
    get nextValidators(): {
        precommitThreshold: bigint;
        certificateThreshold: bigint;
        validators: Validator[];
    };
    get assets(): BlockAssets;
}
