/// <reference types="node" />
import { EventQueue } from './event_queue';
import { StateDBReadWriter } from './prefixed_state_read_writer';
import { SubStore, ImmutableSubStore, ImmutableMethodContext, StateStore as IStateStore } from './types';
interface Params {
    stateStore: IStateStore;
    contextStore: Map<string, unknown>;
    eventQueue: EventQueue;
}
export declare const createMethodContext: (params: Params) => MethodContext;
export declare const createNewMethodContext: (db: StateDBReadWriter) => MethodContext;
interface ImmutableSubStoreGetter {
    getStore: (moduleID: Buffer, storePrefix: Buffer) => ImmutableSubStore;
}
export declare const createImmutableMethodContext: (immutableSubstoreGetter: ImmutableSubStoreGetter) => ImmutableMethodContext;
export declare class MethodContext {
    private readonly _stateStore;
    private readonly _contextStore;
    private readonly _eventQueue;
    constructor(params: Params);
    getStore(moduleID: Buffer, storePrefix: Buffer): SubStore;
    get contextStore(): Map<string, unknown>;
    get eventQueue(): EventQueue;
}
export {};
