import type { IStage, IStageParams } from '../interface';
import type { IPlugin, IPluginContext } from '../plugins';
import { type IContributionRegistry } from '../registry';
import type { IAppContext, IAppContextFactoryName, IAppContextRegistryName } from './types';
export declare class AppContext implements IAppContext {
    readonly registry: {
        renderer: import("../registry").IRendererRegistry;
        picker: import("../registry").IPickerRegistry;
        contribution: IContributionRegistry<unknown>;
        plugin: import("../registry").IPluginRegistry;
    };
    readonly factory: {
        stage: import("../factory").IStageFactory<IStage>;
        layer: import("../factory").ILayerFactory<import("../interface").ILayer>;
        graphic: import("../factory").IGraphicFactory;
    };
    private readonly stageResources;
    private _released;
    constructor(context?: Partial<IPluginContext>);
    get released(): boolean;
    getRegistry<TKey extends IAppContextRegistryName>(name: TKey): IAppContext['registry'][TKey];
    getFactory<TKey extends IAppContextFactoryName>(name: TKey): IAppContext['factory'][TKey];
    installPlugin(plugin: IPlugin): void;
    installPlugins(plugins: IPlugin[]): void;
    uninstallPlugin(name: string): void;
    createStage(params?: Partial<IStageParams>): IStage;
    release(): void;
    private assertActive;
    private createStageDeps;
}
