@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
1,076 lines (1,075 loc) • 35.1 kB
TypeScript
import { PowerShellCommand } from '../data/powershell';
/**
* Defines an object or property for other extensions to reference
*/
export interface EnvironmentModulePropertyDescriptor {
/**
* The type of value of this property.
* required if schema is not defined.
*/
type?: 'array' | 'boolean' | 'null' | 'object' | 'number' | 'string';
/**
* A reference to a schema resource defining this property
*/
schema?: string;
/**
* Tells other extension developers more information about this property
*/
comment?: string;
/**
* Indicates if this field is required
*/
required?: boolean;
/**
* The default value of this property
* The type should be of the same type defined in the 'type' property.
*/
defaultsTo?: any;
/**
* The contract for the array items.
* Required if the type property is set to 'array'
*/
items?: EnvironmentModulePropertyDescriptor;
/**
* The contract for the sub properties.
* Required if the type property is set to 'object'
*/
properties?: MsftSme.StringMap<EnvironmentModulePropertyDescriptor>;
}
export interface EnvironmentModuleDisplayable {
/**
* display name of module
*/
displayName: string;
/**
* description of module
*/
description: string;
/**
* icon url or smeIcon reference. Absolute or relative urls
*/
icon: string;
/**
* The scale of icon. (1.0 is default if not specified)
*/
iconScale?: number;
/**
* The dark theme data. (Optional)
*/
darkTheme?: {
/**
* The icon path on the package.
*/
icon: string;
/**
* The scale of icon. (1.0 is default if not specified)
*/
iconScale?: number;
};
/**
* keywords for module search
*/
keywords: string[];
}
/**
* The type of entry point.
*/
export declare enum EnvironmentModuleEntryPointType {
ConnectionProvider = "connectionProvider",
Solution = "solution",
Tool = "tool",
Service = "service",
SettingsForm = "settingsForm",
GroupProvider = "groupProvider",
Worker = "worker",
Dialog = "dialog",
SnapIn = "snapIn"
}
/**
* The type of behavior to solution root navigation.
*/
export declare type SolutionRootNavigationBehaviorType = 'path' | 'connections' | 'tools';
/**
* The interface of condition check of server inventory data.
*/
export interface EnvironmentModuleConditionStatement {
/**
* The operator of the condition.
*/
operator: 'gt' | 'ge' | 'lt' | 'le' | 'eq' | 'ne' | 'is' | 'not' | 'contains' | 'notContains' | 'anyEq' | 'anyNe' | 'anyContains' | 'anyNotContains';
/**
* The data type of value.
*/
type: 'version' | 'number' | 'string' | 'boolean' | 'numberArray' | 'stringArray';
/**
* The test value of the condition.
*/
value: string | number | boolean | number[] | string[];
}
/**
* The mapped inventory conditions.
*/
export declare type EnvironmentModuleConditionMap = MsftSme.StringMap<EnvironmentModuleConditionStatement>;
/**
* The requirement of entry point to be activated on the view.
*/
export interface EnvironmentModuleEntryPointRequirement {
/**
* The id of solutions of the connection type that satisfies this requirement.
*/
solutionIds?: string[];
/**
* The id of the connection type that satisfies this requirement
*/
connectionTypes?: string[];
/**
* The conditions of tool status.
*/
conditions?: {
/**
* Check if app/desktop localhost. Only tested if it sets "false".
*/
localhost?: boolean;
/**
* Check if specific condition against ServerInventory data.
*/
inventory?: EnvironmentModuleConditionMap;
/**
* Check if specific condition against supported installation type data.
*/
installationTypes?: string[];
/**
* Check if specific condition against Connection properties data.
*/
properties?: EnvironmentModuleConditionMap;
/**
* @deprecated
* Check by using PowerShell script.
*
* must return the following format.
* {
* state: 'Available', 'NotConfigured', 'NotSupported'
* message: string
* keyValuePairs: [ { name: string, value: string, type: string } ]
* }
*/
script?: string;
/**
* Check by using PowerShell script and command.
*
* must return the following format.
* {
* state: 'Available', 'NotConfigured', 'NotSupported'
* message: string
* keyValuePairs: [ { name: string, value: string, type: string } ]
* }
*/
powerShell?: PowerShellCommand;
}[];
}
/**
* Defines an object that describes the identity of an extension method
*/
export interface ExtensionMethodIdentifier {
/**
* The name of the module in which the extension method can be found
*/
module: string;
/**
* The name of the entry point in which the extension method can be found
*/
name: string;
/**
* The method to find
*/
method: string;
/**
* The version of the method to be found
*/
version: number;
}
/**
* Defines an object that describes the identity of an extension dialog
*/
export interface ExtensionDialogIdentifier {
/**
* The name of the module in which the extension dialog can be found
*/
module: string;
/**
* The name of the entry point of the extension dialog
*/
name: string;
/**
* The version of the dialog
*/
version: number;
}
export interface EnvironmentModuleConnectionStatusProvider {
/**
* If defined, powershell will be used to query a connections status
*/
powerShell?: PowerShellCommand;
/**
* If defined, the gateways REST api will be used to query a connections status
*/
relativeGatewayUrl?: string;
/**
* Specifies to get the connection status from a worker extension method.
* The worker method is expected to take a connection name as its only input
*/
worker?: ExtensionMethodIdentifier;
/**
* Specifies to get the connection status from a service extension method.
* The service method is expected to take a connection name as its only input
*/
service?: ExtensionMethodIdentifier;
/**
* If defined, will be used to look up display strings for the label and description of the status object
*/
displayValueMap?: MsftSme.StringMap<string>;
/**
* If defined, will be used to skip status checks
*/
skipStatusCheck?: boolean;
}
export interface SolutionConnectionsViewConfiguration {
/**
* List of connections types to show in the view of the connections list
* each entry should be a valid connection type string identifier from any
* modules entrypoints of type @see EnvironmentModuleEntryPointType.ConnectionProvider
*/
connectionTypes: string[];
/**
* The title of the connections list for this solution.
* Optional. A default header will be provided if this field is left out
*/
header?: string;
}
export interface SolutionToolsViewConfiguration {
/**
* Enables/Disable ths tools menu
*/
enabled: boolean;
/**
* Sets the title of the tools menu
*/
title: string;
/**
* Sets the title of the search field on the tools menu
*/
searchTitle: string;
/**
* Indicates the default tool to open if no tool is provided. This value should be the name of an entrypoint in the same module
*/
defaultTool: string;
/**
* The list of known tools that will be displayed at the first section of tool menu.
* 1) entry and group are mandatory.
* 2) create groups and sort members by priority then alphabetical.
* 3) sort the groups by highest priority number in the group members.
* 4) settings creates single group and sort members by priority then alphabetical.
*/
predefined: {
/**
* The entry point ID with "<module name>!<entry point name>" format.
*/
id: string;
/**
* The group display name.
*/
group: string;
/**
* The ordering priority.
* (0 is highest)
*/
priority?: number;
/**
* Indicating the tool is settings menu.
*/
settings?: boolean;
}[];
}
/**
* Defines the configuration for a connection provider experience
*/
export interface ConnectionProviderExperienceConfiguration {
/**
* The path to the experience.
*/
path: string;
/**
* The label to display for the experience.
* ex) Add Server Connection, Create Failover Cluster Connection and so on.
*/
label: string;
/**
* The dialog mode to use for the dialog that contains this experience
*/
dialogMode?: 'normal' | 'wide' | 'compact' | 'fullscreen';
}
/**
* The type of lifetime to implement when creating a worker
*/
export declare type WorkerLifetime = 'default' | 'long';
/**
* The type of startup type to implement when creating a service
*/
export declare type ServiceStartupType = 'automatic' | 'onDemand';
/**
* The type of cleanup type to implement when creating a service
* 'never' means that that service will start and only be destroyed if specifically requested or the application ends
* 'onIdle' means that the shell will clean up the service when no one has used it within a certain time limit.
* This time limit is currently controlled by the shell.
*/
export declare type ServiceCleanupType = 'never' | 'onIdle';
/**
* Defines the target of an entry point
*/
export interface ExtenderDefinition {
/**
* The module to target
*/
module: string;
/**
* The name of the extension target (within the 'module') to provide this entry point to
*/
target: string;
}
/**
* Defines the target of a worker entry point
*/
export interface WorkerExtenderDefinition extends ExtenderDefinition {
/**
* A map of method names to the versions that are implemented in this worker
*/
methodVersions: MsftSme.StringMap<number>;
}
/**
* Describes the method contract exposed by a worker for other modules to call.
* When making breaking changes, make sure to use the version properties so dependent modules still work with an older contract
*/
export interface ExtensionMethodContract {
/**
* The version of this method. Create a new version for every breaking change
*/
version?: number;
/**
* The name of the method
*/
method: string;
/**
* a comment describing this method to consumers
*/
comment?: string;
/**
* Defines the arguments expected to be passed to this method
*/
arguments?: MsftSme.StringMap<EnvironmentModulePropertyDescriptor>;
/**
* Defines the contract that this method will return
*/
returns: EnvironmentModulePropertyDescriptor;
}
/**
* Describes the declaration for a dialog
* When making breaking changes, make sure to use the version properties so dependent modules still work with an older contract
*/
export interface DialogExtensionDeclaration {
/**
* The version of this method. Create a new version for every breaking change
*/
version?: number;
/**
* a comment describing this dialog to consumers
*/
comment?: string;
/**
* The dialog mode to use for the dialog
*/
dialogMode?: 'pane' | 'wide-pane' | 'compact' | 'compact-square' | 'fullscreen' | 'centered' | 'centered-large';
/**
* Defines the arguments expected to be passed to this method
*/
arguments?: MsftSme.StringMap<EnvironmentModulePropertyDescriptor>;
/**
* Defines the contract that this dialog will return
*/
returns: EnvironmentModulePropertyDescriptor;
}
/**
* Define the minimum and maximum footprint of a snap in
*/
export interface SnapInSizeConstraints {
minWidth: number;
minHeight: number;
maxWidth: number;
maxHeight: number;
}
/**
* Define the component interaction of inputs and outputs between the entry point and its consumer
*/
export interface ExtensionInteraction {
/**
* The version of this interaction. Create a new version for every breaking change
*/
version?: number;
/**
* a comment describing this interaction model
*/
comment?: string;
/**
* Defines the inputs that can be passed to this entry point
*/
inputs?: MsftSme.StringMap<EnvironmentModulePropertyDescriptor>;
/**
* Defines the outputs that this entry point can return
*/
outputs?: MsftSme.StringMap<EnvironmentModulePropertyDescriptor>;
}
/**
* The type of lifetime to implement when creating a worker
*/
export declare enum ExtensionTargetType {
WorkerTarget = "workerTarget"
}
export interface ExtensionTarget {
/**
* The type of extension target
*/
extensionTargetType: ExtensionTargetType;
/**
* Description of the workerTarget.
* This should tell the consumer what workers who target this are expected to do.
*/
description: string;
/**
* The name of this extension target.
* Should be unique to this modules other extension targets
*/
name: string;
/**
* Mapping to the parent module of this target
*/
parentModule?: EnvironmentModule;
}
export interface WorkerExtensionTarget extends ExtensionTarget {
/**
* The type of extension target
*/
extensionTargetType: ExtensionTargetType.WorkerTarget;
/**
* worker only -- The contract that is expected to be fulfilled by worker entry points that extend this target
*/
contract: ExtensionMethodContract[];
}
/**
* Defines the provider for collecting active managing as information
*/
export interface ManagingAsProvider {
/**
* If Defined, Specifies to collect managing as data from a worker method
*/
worker?: ExtensionMethodIdentifier;
/**
* If Defined, Specifies to collect managing as data from a service method
*/
service?: ExtensionMethodIdentifier;
}
/**
* Defines how to apply manage as scenarios to this connection type
*/
export interface EnvironmentModuleManageAsScheme {
/**
* If Defined, Specifies to configure manage as credentials from an extension dialog
*/
configurationDialog: ExtensionDialogIdentifier;
/**
* If Defined, Specifies how to collect active managing as data
*/
managingAsProvider: ManagingAsProvider;
}
/**
* Defines a modules entry point
*/
export interface EnvironmentModuleEntryPoint extends EnvironmentModuleDisplayable {
/**
* The type of entry point.
*/
entryPointType: EnvironmentModuleEntryPointType;
/**
* The name of entry point, unique to its parent module
*/
name?: string;
/**
* The friendly url name to use to reference this entrypoint. This must be unique among all entrypoints
*/
urlName?: string;
/**
* The path of entry point.
*/
path: string;
/**
* The frame Id to share single iframe within the module.
*/
iframeId?: string;
/**
* Experiment keys that must all be enabled to enable this entry point
*/
experimentKeys?: string[];
/**
* The id of the group provider.
* Used to indicate which group provider should be used for grouping extensions
*/
groupId?: string;
/**
* @see EnvironmentModuleEntryPointType.ConnectionProvider types only.
* NOTE: This SHOULD be for SOLUTION types. since a connection type can exist in multiple solutions.
* If true, the search bar will shown the tools list for this connection type
* Otherwise, search bar will be hidden. Default is true.
*/
searchBar?: boolean;
/**
* @see EnvironmentModuleEntryPointType.ConnectionProvider types only.
* Alternative to providing "path".
* Configures the experiences for manipulating the connections provided by this entry point
*/
experiences: {
add: ConnectionProviderExperienceConfiguration;
create: ConnectionProviderExperienceConfiguration;
};
/**
* @see EnvironmentModuleEntryPointType.ConnectionProvider types only.
* The id of the connection type that this entry point provides
*/
connectionType?: string;
/**
* @see EnvironmentModuleEntryPointType.ConnectionProvider types only.
* The friendly url name to use to reference the connection type that this entry point provides.
* This must be unique among all connection types
*/
connectionTypeUrlName?: string;
/**
* @see EnvironmentModuleEntryPointType.ConnectionProvider types only.
* The display name of the connection type that this entry point provides
*/
connectionTypeName?: string;
/**
* @see EnvironmentModuleEntryPointType.ConnectionProvider types only.
* The default solution to use when opening the connection type that this entry point provides
*/
connectionTypeDefaultSolution?: string;
/**
* @see EnvironmentModuleEntryPointType.ConnectionProvider types only.
* The status provider implementation for the connection type that this entry point provides
*/
connectionStatusProvider?: EnvironmentModuleConnectionStatusProvider;
/**
* @see EnvironmentModuleEntryPointType.ConnectionProvider types only.
* The manage as scheme to use for changing how the connection is managed
*/
manageAsScheme?: EnvironmentModuleManageAsScheme;
/**
* @see EnvironmentModuleEntryPointType.Tool types only.
* A list of requirements, if any requirement is met then this tool is applicable to a given connection
*/
requirements?: EnvironmentModuleEntryPointRequirement[];
/**
* Mapping to the parent module of this entry point
*/
parentModule?: EnvironmentModule;
/**
* @see EnvironmentModuleEntryPointType.Solution types only.
* Defines how navigating to the root of this solution will behave.
* Setting this to 'path' will load this module to the 'path' property.
* Setting this to 'connections' will navigate instead to the connections list, customized for this solution
*/
rootNavigationBehavior?: SolutionRootNavigationBehaviorType;
/**
* @see EnvironmentModuleEntryPointType.Solution types only.
* Only applicable when 'rootNavigationBehavior' us set to 'connections'.
* Describes how to customize the view of the connections list.
*/
connections?: SolutionConnectionsViewConfiguration;
/**
* @see EnvironmentModuleEntryPointType.Solution types only. If provided, Configures the tools menu for this solution.
*/
tools?: SolutionToolsViewConfiguration;
/**
* @see EnvironmentModuleEntryPointType.Worker types only. If provided, Configures the lifetime of this worker.
*/
lifetime?: WorkerLifetime;
/**
* @see EnvironmentModuleEntryPointType.Service types only. If provided, Configures the startup type of this service.
*/
startupType?: ServiceStartupType;
/**
* @see EnvironmentModuleEntryPointType.Service types only. If provided, Configures the cleanup of this service.
*/
cleanupType?: ServiceCleanupType;
/**
* Defines specific extensionTargets to provide this entry point to
*/
extends?: ExtenderDefinition[];
/**
* @see EnvironmentModuleEntryPointType.Worker and @see EnvironmentModuleEntryPointType.Service types only.
* Describes the method contracts exposed by this worker or service for other modules to call.
*/
exposes?: ExtensionMethodContract[];
/**
* @see EnvironmentModuleEntryPointType.Dialog types only
* Defines the declaration for this dialog - inputs and outputs.
*/
declaration?: DialogExtensionDeclaration[];
/**
* @see EnvironmentModuleEntryPointType.SnapIn types only
* Defines the size requirements for this snap in
*/
sizeConstrains?: SnapInSizeConstraints;
/**
* @see EnvironmentModuleEntryPointType.SnapIn types only
* Defines the component interaction model for the snap in
*/
interaction?: ExtensionInteraction;
/**
* @see EnvironmentModuleEntryPointType.SnapIn types only
* Defines the author of the snap in.
*/
author?: string;
}
/**
* The state definition of Tool condition.
*/
export declare enum EnvironmentModuleToolState {
/**
* Tool is available on the connection.
*/
Available = 0,
/**
* Tool is not available because it's not configured properly.
*/
NotConfigured = 1,
/**
* Tool it not supported on the connection.
*/
NotSupported = 2
}
/**
* The result of Tool conditions.
*/
export interface EnvironmentModuleToolConditionResult {
/**
* Display the tool.
*/
show: boolean;
/**
* The connection id of node.
*/
connectionId?: string;
/**
* The state of tool condition.
*/
detail?: EnvironmentModuleToolState;
/**
* The message of condition.
*/
message?: string;
}
/**
* Tool's combined entry point and inventory result.
*/
export interface EnvironmentModuleEntryPointWithToolConditionResult extends EnvironmentModuleEntryPoint, EnvironmentModuleToolConditionResult {
}
/**
* Environment module resource class.
*/
export interface EnvironmentModuleResource {
/**
* locale key string.
*/
locale: string;
/**
* string map object.
*/
strings: MsftSme.StringMap<string>;
}
export declare const defaultEnvironmentConfiguration: MsftSme.EnvironmentConfiguration;
/**
* Defines an object that provides information about a connection type.
*/
export interface EnvironmentConnectionTypeInfo {
/**
* The provider entry point.
*/
provider: EnvironmentModuleEntryPoint;
/**
* The solution entry point.
*/
solution: EnvironmentModuleEntryPoint;
}
export interface EnvironmentModuleFriendlyUrlMap {
to: MsftSme.StringMap<string>;
from: MsftSme.StringMap<string>;
}
export interface EnvironmentModuleFriendlyUrlMaps {
connectionTypes: EnvironmentModuleFriendlyUrlMap;
solutions: EnvironmentModuleFriendlyUrlMap;
tools: EnvironmentModuleFriendlyUrlMap;
settingsForms: EnvironmentModuleFriendlyUrlMap;
}
/**
* Environment module class.
*/
export declare class EnvironmentModule {
private static readonly logSourceName;
/**
* Static mapping for connection information.
*/
private static connectionMap;
/**
* Static mapping for extensionTargetTypes to a map of extensionTargetIds to entry point ids that fulfill that target
*/
private static extensionTargetFulfillmentMap;
/**
* Static mapping for friendly url strings to entrypoint ids
*/
private static friendlyUrlMap;
/**
* The name of shell.
*/
static nameOfShell: string;
/**
* The default signature if missing manifest.
*/
static defaultSignature: string;
/**
* The prefix for identifying an sme-icon reference
*/
static smeIconPrefix: string;
/**
* All entry points from all modules
*/
static allEntryPoints: EnvironmentModuleEntryPoint[];
/**
* All entry points by type
*/
static entryPointsByType: MsftSme.StringMap<EnvironmentModuleEntryPoint[]>;
/**
* All entry points by type
*/
static entryPointsById: MsftSme.StringMap<EnvironmentModuleEntryPoint>;
/**
* All extension targets from all modules
*/
static allExtensionTargets: ExtensionTarget[];
/**
* All extension targets by type
*/
static extensionTargetsByType: MsftSme.StringMap<ExtensionTarget[]>;
/**
* All extension targets by type
*/
static extensionTargetsById: MsftSme.StringMap<ExtensionTarget>;
/**
* All extension targets by type
*/
static extensionOrigins: Set<String>;
/**
* schema file information.
*/
$schema?: string;
/**
* name of module.
*/
name: string;
/**
* display name of module.
*/
displayName: string;
/**
* description of set of tools.
*/
description?: string;
/**
* keywords of the module.
*/
keywords?: string[];
/**
* origin absolute url.
*/
origin: string;
/**
* target url to open the iframe.
*/
target?: string;
/**
* signature.
*/
signature: string;
/**
* The version of this module
*/
version: string;
/**
* icon url, absolute or relative to Shell url.
*/
icon?: string;
/**
* The support JEA endpoint with PowerShell module.
*/
jea?: boolean;
/**
* extension targets for this extension
* Defines things that can be extended in this module.
*/
extensionTargets?: ExtensionTarget[];
/**
* entry points to launch the tool.
*/
entryPoints: EnvironmentModuleEntryPoint[];
/**
* Assets shared by the module
*/
assets?: MsftSme.MsftSmeModuleAssets;
/**
* localized resources of strings.
*/
resources: EnvironmentModuleResource[];
/**
* Schemas provided for use in this manifest
*/
schemas?: MsftSme.StringMap<EnvironmentModulePropertyDescriptor>;
/**
* list of all other available modules for shell.
*/
modules?: EnvironmentModule[];
/**
* Indicates that this module is being sideLoaded
*/
isSideLoaded?: boolean;
/**
* The Environment configuration
*/
configuration: MsftSme.EnvironmentConfiguration;
/**
* returns true if the provided origin is a known extension origin
*/
static isExtensionOrigin(origin: string): boolean;
/**
* Indicates if a given icon reference is an sme-icon or some other form
* @param iconRef the reference to check
*/
static isSmeIconRef(iconRef: string): boolean;
/**
* Gets the icon class from an iconRef or returns null if the iconRef is not an sme-icon reference
* @param iconRef the reference to check
*/
static getSmeIconClassFromRef(iconRef: string): string;
/**
* Gets the icon url from an iconRef or returns null if the iconRef is an sme-icon reference
* @param iconRef the reference to check
*/
static getFormattedIconRefUrl(iconRef: string): string;
/**
* Processes an icon reference to resolve it to either a sme-icon or absolute url
* @param iconRef The icon reference
* @param module the module that the icon belongs to
*/
static processIconReference(iconRef: string, module: EnvironmentModule): string;
/**
* Converts relative module paths into absolute uris
*/
private static toAbsolutePath;
/**
* Find resource string for the key.
*
* @param resources The resource.
* @param locale The locale.
* @param key The key string.
*/
static findResource(resources: EnvironmentModuleResource[], locale: string, key: string): string;
/**
* Recursively processes manifest resources
*
* @param module the manifest object.
* @param locale the locale string such as 'en'.
* @param obj current object, defaults to the module itself
*/
private static processModuleResources;
static getModuleAssetUri(moduleName: string, resourceName: string, version: string): string;
/**
* Create environment object from the manifest.
*
* @param manifest the manifest object.
* @param locale the locale string such as 'en'.
*/
static createEnvironment(manifest: any, locale: string): any;
/**
* Gets the environment module.
*
* @param name the name of module.
* @return EnvironmentModule the environment module.
*/
static checkEnvironmentInitialized(): void;
/**
* Gets the environment module.
*
* @param name the name of module.
* @return EnvironmentModule the environment module.
*/
static getEnvironmentModule(name: string): EnvironmentModule;
/**
* Process extension targets for quick and easy access later
* @param module the modules to process
*/
private static processExtensionTargets;
/**
* Process Entry points for quick and easy access later
* @param module the modules to process
*/
private static processEntryPoints;
/**
* Evaluates all of the modules in the environment and returns a flat list of all of their entry points.
* optionally filtered by the 'filter' function
*
* @param filter the filter to apply to the entry points.
* @return a flat list of all module entry points
*/
private static getExtensionTargets;
/**
* Evaluates all of the modules in the environment and returns a flat list of all of their entry points.
* optionally filtered by the 'filter' function
*
* @param filter the filter to apply to the entry points.
* @return a flat list of all module entry points
*/
static getEntryPoints(filter?: (entryPoint: EnvironmentModuleEntryPoint) => boolean): EnvironmentModuleEntryPoint[];
/**
* Gets the available entry points from all of the modules in the environment, filtered by type.
*
* @param name the name of module.
* @return EnvironmentModule the environment module.
*/
static getEntryPointsByType(entryPointTypes: EnvironmentModuleEntryPointType[]): EnvironmentModuleEntryPoint[];
/**
* Gets the connection type mapping data.
*
* @return the mapping object.
*/
static fulfillExtensionTarget(extensionTargetId: any): string[];
/**
* Gets the connection type mapping data.
*
* @return the mapping object.
*/
static getConnectionMap(): {
[name: string]: EnvironmentConnectionTypeInfo;
};
/**
* Gets a friendly url segment from a connection type
* @param connectionType the connection type to map.
* @return string friendly url for the connection type or the connection type if no friendly name exists.
*/
static getFriendlyUrlSegmentForConnectionType(connectionType: string, fallbackToUnfriendlySegment?: boolean): string;
/**
* Gets a connection type from a friendly url segment
* @param urlSegment the url segment to map
* @return string connection type found using the friendly url segment
*/
static getConnectionTypeFromFriendlyUrlSegment(urlSegment: string): string;
/**
* Gets a friendly url segment from an entry point id
* @param urlSegment the url segment.
* @param entryPointType the type of entry point to look for.
* @return string friendly url for the entry point id
*/
static getFriendlyUrlSegmentForEntryPoint(entryPoint: string, entryPointType: EnvironmentModuleEntryPointType, fallbackToUnfriendlySegment?: boolean): string;
/**
* Gets a friendly url segment for an entry point
* @param urlSegment the url segment.
* @param entryPointType the type of entry point to look for.
* @return string friendly url for the entry point
*/
static getEntryPointFromFriendlyUrlSegment(urlSegment: string, entryPointType: EnvironmentModuleEntryPointType): string;
/**
* Gets the connection type information.
*
* @param typeName the type name.
* @return EnvironmentConnectionTypeInfo the connection type information.
*/
static getConnectionTypeInfo(typeName: string): EnvironmentConnectionTypeInfo;
private static createConnectionMap;
/**
* splits an entrypoint identifier string into its respective module and entrypoint names
* @param format the formatted entrypoint identifier string
*/
static splitFormattedEntrypoint(format: string): {
moduleName: string;
entrypointName: string;
};
/**
* creates a formatted entrypoint identifier string from an entrypoint
* @param entryPoint the entrypoint to create the string from
*/
static createFormattedEntrypoint(entryPoint: EnvironmentModuleEntryPoint): string;
static createEntrypointId(moduleName: string, entryPointName: string): string;
/**
* Create a formatted iframe ID used to link iframes and their html element
* Replace . with - because . is not permitted in css selectors required for testing
* @param parentModuleName the name of the parent module of the iframe content
* @param entryPointName the name of the entry point loaded by the iframe
*/
static createFormattedIFrameId(parentModuleName: string, entryPointName: string): string;
/**
* splits an extension target identifier string into its respective module and extension target names
* @param format the formatted extension target identifier string
*/
static splitFormattedExtensionTarget(format: string): {
moduleName: string;
extensionTargetName: string;
};
/**
* creates a formatted extension target identifier string from an extension target
* @param entryPoint the extension target to create the string from
*/
static createFormattedExtensionTarget(extensionTarget: ExtensionTarget): string;
/**
* resolves an entrypoint from a formatted entrypoint identifier string
* @param formattedEntrypointIdentifier the formatted entrypoint identifier string
*/
static resolveEntrypoint(formattedEntrypointIdentifier: string): EnvironmentModuleEntryPoint;
/**
* Gets the name of current shell or module.
*/
static getModuleName(): string;
/**
* Gets the version of current shell or module.
*/
static getModuleVersion(): string;
/**
* Compare the shell version with specified version.
* - this function must be called after NavigationService Init was called, otherwise it
* cannot get current shell version and return false.
* - Tag format is expected be like "<Major>.<Minor>.<Patch>-<Tag>.<Tag version>".
* ex) 1.2.3-myTagName.123
*
* @param inputVersion the version to compare.
* @return true if shell has newer version running.
*/
static shellGreaterOrEqual(inputVersion: string): boolean;
/**
* Check if the gateway uses API set of version 2.0.0.
* @returns true if version 2.0.0
*/
static get isGatewayV200(): boolean;
/**
* check if the gateway runs on Windows platform.
* @returns true if Windows platform.
*/
static get isGatewayWindows(): boolean;
/**
* Check if the gateway runs on Linux platform.
* @returns true if Linux platform.
*/
static get isGatewayLinux(): boolean;
}