import { Observable } from 'rxjs';
import { IPlatformContext } from '@adminide-stack/extension-api';
import { IRegistryExtension, ErrorLike, IConfiguredExtension, IConfiguredRegistryExtension } from '@adminide-stack/extension-api';
import { IGeneratedSettings as ISettings } from '@workbench-stack/core';
/**
 * @returns An observable that emits the list of extensions configured in the viewer's final settings upon
 * subscription and each time it changes.
 */
export declare function viewerConfiguredExtensions({ settings, requestGraphQL, }: Pick<IPlatformContext, 'settings' | 'requestGraphQL'>): Observable<IConfiguredRegistryExtension[]>;
/**
 * Query the GraphQL API for registry metadata about the extensions given in {@link extensionIDs}.
 *
 * @return An observable that emits once with the results.
 */
export declare function queryConfiguredRegistryExtensions({ requestGraphQL }: Pick<IPlatformContext, 'requestGraphQL'>, extensionIDs: string[]): Observable<IConfiguredRegistryExtension[]>;
declare type MinimalRegistryExtension = Pick<IRegistryExtension, 'extensionID' | 'id' | 'url' | 'viewerCanAdminister'> & {
    manifest: {
        raw: string;
    } | null;
};
/**
 * Converts to a {@link IConfiguredRegistryExtension} value.
 *
 * @template X the extension type
 */
export declare function toConfiguredRegistryExtension<X extends MinimalRegistryExtension>(extension: X): IConfiguredRegistryExtension<X>;
/** Reports whether the given extension is enabled in the settings. */
export declare function isExtensionEnabled(settings: ISettings | ErrorLike | null, extensionID: string): boolean;
/**
 * Returns the extension's script URL from its manifest.
 *
 * @param extension The extension whose script URL to get.
 * @throws If the script URL can't be determined.
 * @returns The extension's script URL.
 */
export declare function getScriptURLFromExtensionManifest(extension: IConfiguredExtension & {
    registryExtension?: any;
}): string;
/**
 * @throws An error if the final settings has an error.
 * @returns An array of extension IDs configured in the settings.
 */
export declare function extensionIDsFromSettings(settings: ISettings): string[];
export {};
