import { ControlType, ExternalArgs, Event } from "../../typing";
import { EventEnv } from "../events/event-env";
import { EsmLoader } from "../esm/esm-loader";
/**
 * Define all actions that could be done in the context of the execution (provided by D365).
 * The context is defined by the current page contexte (form or grid).
 * @internal
 */
export declare class Context {
    private eventEnv;
    private esmLoader;
    controlType: ControlType;
    private d365EventSubscriber;
    private componentLifeCycle;
    static new(extArgs: ExternalArgs, eventEnv: EventEnv, moduleLoader: EsmLoader): Promise<Context>;
    private constructor();
    private checkIntegrity;
    /**
     * Initialize the context
     * @param extArgs
     */
    private init;
    /**
     * Check the consistency of an event type
     * @param eventType
     * @param event
     */
    private checkEventType;
    /**
     * Trigger an event
     * @param event
     * @param extArgs
     * @returns
     */
    triggerEvent(event: Event, extArgs: ExternalArgs): unknown;
}
