/** * A feature that can be enabled or disabled */ export interface ContributedFeature { /** * Named links describing the feature */ _links?: any; /** * If true, the feature is enabled unless overridden at some scope */ defaultState?: boolean; /** * Rules for setting the default value if not specified by any setting/scope. Evaluated in order until a rule returns an Enabled or Disabled state (not Undefined) */ defaultValueRules?: ContributedFeatureValueRule[]; /** * The description of the feature */ description?: string; /** * Extra properties for the feature */ featureProperties?: { [key: string]: any; }; /** * Handler for listening to setter calls on feature value. These listeners are only invoked after a successful set has occurred */ featureStateChangedListeners?: ContributedFeatureListener[]; /** * The full contribution id of the feature */ id?: string; /** * If this is set to true, then the id for this feature will be added to the list of claims for the request. */ includeAsClaim?: boolean; /** * The friendly name of the feature */ name?: string; /** * Suggested order to display feature in. */ order?: number; /** * Rules for overriding a feature value. These rules are run before explicit user/host state values are checked. They are evaluated in order until a rule returns an Enabled or Disabled state (not Undefined) */ overrideRules?: ContributedFeatureValueRule[]; /** * The scopes/levels at which settings can set the enabled/disabled state of this feature */ scopes?: ContributedFeatureSettingScope[]; /** * The service instance id of the service that owns this feature */ serviceInstanceType?: string; /** * Tags associated with the feature. */ tags?: string[]; } /** * The current state of a feature within a given scope */ export declare enum ContributedFeatureEnabledValue { /** * The state of the feature is not set for the specified scope */ Undefined = -1, /** * The feature is disabled at the specified scope */ Disabled = 0, /** * The feature is enabled at the specified scope */ Enabled = 1 } export interface ContributedFeatureHandlerSettings { /** * Name of the handler to run */ name?: string; /** * Properties to feed to the handler */ properties?: { [key: string]: any; }; } /** * An identifier and properties used to pass into a handler for a listener or plugin */ export interface ContributedFeatureListener extends ContributedFeatureHandlerSettings { } /** * The scope to which a feature setting applies */ export interface ContributedFeatureSettingScope { /** * The name of the settings scope to use when reading/writing the setting */ settingScope?: string; /** * Whether this is a user-scope or this is a host-wide (all users) setting */ userScoped?: boolean; } /** * A contributed feature/state pair */ export interface ContributedFeatureState { /** * The full contribution id of the feature */ featureId?: string; /** * True if the effective state was set by an override rule (indicating that the state cannot be managed by the end user) */ overridden?: boolean; /** * Reason that the state was set (by a plugin/rule). */ reason?: string; /** * The scope at which this state applies */ scope?: ContributedFeatureSettingScope; /** * The current state of this feature */ state?: ContributedFeatureEnabledValue; } /** * A query for the effective contributed feature states for a list of feature ids */ export interface ContributedFeatureStateQuery { /** * The list of feature ids to query */ featureIds?: string[]; /** * The query result containing the current feature states for each of the queried feature ids */ featureStates?: { [key: string]: ContributedFeatureState; }; /** * A dictionary of scope values (project name, etc.) to use in the query (if querying across scopes) */ scopeValues?: { [key: string]: string; }; } /** * A rule for dynamically getting the enabled/disabled state of a feature */ export interface ContributedFeatureValueRule extends ContributedFeatureHandlerSettings { } export declare var TypeInfo: { ContributedFeatureEnabledValue: { enumValues: { undefined: number; disabled: number; enabled: number; }; }; ContributedFeatureState: any; ContributedFeatureStateQuery: any; };