import type { IApp, IGraphicPicker, ILegacyBindingContext, ServiceIdentifier } from '@visactor/vrender-core';
export type TRuntimeContributionModuleRegistry = (bind: ILegacyBindingContext['bind'], unbind: (serviceIdentifier: ServiceIdentifier) => void, isBound: ILegacyBindingContext['isBound'], rebind: ILegacyBindingContext['rebind']) => void;
export type TRuntimeContributionModule = ((context: ILegacyBindingContext) => void) | {
    registry: TRuntimeContributionModuleRegistry;
};
export type TRuntimeContributionInstallTarget = 'graphic-renderer' | 'draw-contribution' | {
    picker: ServiceIdentifier<IGraphicPicker>;
};
export interface IRuntimeContributionModuleInstallOptions {
    app?: IApp;
    legacy?: boolean;
    targets?: TRuntimeContributionInstallTarget[];
}
export interface ISharedRuntimeContributionModuleInstallOptions extends Omit<IRuntimeContributionModuleInstallOptions, 'app'> {
    app?: IApp;
    installExistingSharedApps?: boolean;
}
export declare function installPendingRuntimeContributionModulesToApp(app: IApp): void;
export declare function installRuntimeContributionModule(module: TRuntimeContributionModule, { app, installExistingSharedApps, ...runtimeOptions }?: ISharedRuntimeContributionModuleInstallOptions): void;
