import { Unsubscribable } from 'rxjs';
import { IController, IExtServices, IExtensionsService } from '@adminide-stack/extension-api';
import { IPlatformContext, IContributionRegistry } from '@adminide-stack/extension-api';
import { IClientService } from '@adminide-stack/core';
/**
 * Creates the controller, which handles all communication between the client application and extensions.
 *
 * There should only be a single controller for the entire client application. The controller's model represents
 * all of the client application state that the client needs to know.
 */
export declare function createController(context: IPlatformContext, internalService: IClientService & IExtServices): IController;
export declare function registerExtensionContributions(contributionRegistry: Pick<IContributionRegistry, 'registerContributions'>, { activeExtensions }: Pick<IExtensionsService, 'activeExtensions'>): Unsubscribable;
