import { Unsubscribable } from 'rxjs';
import { WebExtHostExtensionServiceShape } from '@adminide-stack/extension-api';
export declare class WebExtHostExtensionService implements WebExtHostExtensionServiceShape, Unsubscribable {
    /** Extension's deactivate functions. */
    private extensionDeactivate;
    /**
     * Proxy method invoked by the client to load an extension and invoke its `activate` function to start running it.
     *
     * It also sets up global hooks so that when the extension's code uses `require('cdeops/client')` and
     * `import 'cdeops/client'`, it gets the extension API handle (the value specified in
     * cdeops.d.ts).
     *
     * @param extensionID The extension ID of the extension to activate.
     * @param bundleURL The URL to the JavaScript source file (that exports an `activate` function) for
     * the extension.
     * @returns A promise that resolves when the extension's activation finishes (i.e., when it returns if it's synchronous,
     * or when the promise it returns resolves if it's async)
     */
    $activateExtension(extensionID: string, bundleURL: string): Promise<void>;
    $deactivateExtension(extensionID: string): Promise<void>;
    /**
     * Deactivates all activated extensions that have "deactivate" functions. It does not wait for
     * the deactivation to finish for an extension if its deactivate function is async. If any
     * deactivate functions throw an error or reject, the error is logged and not propagated.
     *
     * There is no guarantee that extensions' deactivate functions are called or that execution
     * continues until they are finished. The JavaScript execution context may be terminated before
     * deactivation is completed.
     */
    unsubscribe(): void;
}
