import { Emitter } from './emitter';
import { Events } from './events';
import { Component } from '../engine/component';
import { Plugin, PluginParams } from './plugin';
import { EventsTypes as DefaultEvents } from './events';
export declare class Context<EventsTypes> extends Emitter<EventsTypes & DefaultEvents> {
    id: string;
    plugins: Map<string, any>;
    components: Map<string, Component>;
    constructor(id: string, events: Events);
    use<T extends Plugin, O extends PluginParams<T>>(plugin: T, options?: O): void;
    register(component: Component): void;
}
