import { Observable } from 'rxjs'; import { JsonObject } from '../base/json'; import { PlainVersionedObject, VersionedObject, VersionedObjectConstructor, VersionedObjectHandlers } from '../base/versioned-object'; import { Rpc } from '../rpc/rpc'; import { GatewayConnection } from './gateway-connection'; export declare const enum BannerHideType { /** * Indicates banner is not hidden (unusual) */ None = 0, /** * Indicates banner is hidden for the current session */ Session = 1, /** * Indicates banner is hidden permanently */ Permanent = 2 } /** * Defines banner settings for the current user shared across the application */ export interface BannerUserSettings extends JsonObject { id: string; hideType: BannerHideType; } /** * The Versioned representation of the Shell User Settings * This object is used for settings that specific to the current user and to shell */ export declare class CommonUserSettings extends VersionedObject { private static propertyNames; /** * Getter for the latest version of the common user settings */ get latestVersion(): number; /** * Getter for the users preference on banner settings */ get banners(): BannerUserSettings[]; /** * Setter for the users preference on banner settings */ set banners(value: BannerUserSettings[]); constructor(objectWrapper: PlainVersionedObject, handlers: VersionedObjectHandlers); /** * Attempts to upgrade the current version of the object at least one version toward the latest version. * if this.currentVersion is null or undefined, then the upgrade should initialize to the latest version * this is called iteratively until the current version is equal to the latest version */ protected upgrade(): void; } /** * Defines the common application settings object that is shared through the whole application. */ export declare class CommonApplicationSettings extends VersionedObject { private static propertyNames; /** * Getter for the latest version of the common application settings */ get latestVersion(): number; constructor(objectWrapper: PlainVersionedObject, handlers: VersionedObjectHandlers); /** * Attempts to upgrade the current version of the object at least one version toward the latest version. * if this.currentVersion is null or undefined, then the upgrade should initialize to the latest version * this is called iteratively until the current version is equal to the latest version */ protected upgrade(): void; } /** * Defines the common admin settings object that is shared through the whole application. */ export declare class CommonAdminSettings extends VersionedObject { private static propertyNames; /** * Getter for the latest version of the common admin settings */ get latestVersion(): number; /** * Getter for the admin's preference on the connectivity level */ get connectivityLevel(): string; /** * Setter for the admin's preference on the connectivity level */ set connectivityLevel(value: string); get autoGatewayUpdate(): boolean; set autoGatewayUpdate(value: boolean); get autoExtensionsUpdate(): boolean; set autoExtensionsUpdate(value: boolean); get scheduledUpdateTime(): string; set scheduledUpdateTime(value: string); get updateRescheduled(): boolean; private sessionsExpirationMinutesCache; get sessionsExpirationMinutes(): number; set sessionsExpirationMinutes(value: number); private credentialsExpirationTimeInMsCache; /** * Get stored manage as credentials expiration time in milliseconds */ get credentialsExpirationTimeInMs(): number; /** * Store manage as credentials expiration time in milliseconds */ set credentialsExpirationTimeInMs(value: number); set updateRescheduled(value: boolean); constructor(objectWrapper: PlainVersionedObject, handlers: VersionedObjectHandlers, gatewayService: GatewayConnection); /** * Attempts to upgrade the current version of the object at least one version toward the latest version. * if this.currentVersion is null or undefined, then the upgrade should initialize to the latest version * this is called iteratively until the current version is equal to the latest version */ protected upgrade(): void; } /** * Defines the interface for the settings manager. */ export interface SettingsQuery { httpServerHeader: string; getCommonUserSettings(): Observable; getCommonApplicationSettings(): Observable; getCommonAdminSettings(): Observable; getExtensionUserSettings(type: VersionedObjectConstructor): Observable; getExtensionApplicationSettings(type: VersionedObjectConstructor): Observable; getExtensionAdminSettings(type: VersionedObjectConstructor): Observable; } /** * Manager for the settings. Provides an api for managing user and application settings. */ export declare class SettingsManager implements SettingsQuery { private rpc; private gatewayService; /** * Initializes a new instance of the SettingsManager class. * * @param rpc the RPC class instance. */ constructor(rpc: Rpc, gatewayService: GatewayConnection); /** * Gets the http server header if any. */ get httpServerHeader(): string; /** * Get common user settings. This is currently read-only */ getCommonUserSettings(): Observable; /** * Get common application settings. This is currently read-only */ getCommonApplicationSettings(): Observable; /** * Get common admin settings. This is currently read-only */ getCommonAdminSettings(): Observable; /** * Get extension user settings * Extension settings objects must be an object that extends VersionedObject or implements the VersionedObjectConstructor * example: if TestObject extends VersionedObject, then getExtensionUserSettings(TestObject) will return an Observable * you should only create 1 versioned object for your extensions user settings. */ getExtensionUserSettings(type: VersionedObjectConstructor): Observable; /** * Get extension application settings * Extension settings objects must be an object that extends VersionedObject or implements the VersionedObjectConstructor * example: if TestObject extends VersionedObject, then getExtensionApplicationSettings(TestObject) will return an * Observable. You should only create 1 versioned object for your extensions application settings. */ getExtensionApplicationSettings(type: VersionedObjectConstructor): Observable; /** * Get extension admin settings * Extension settings objects must be an object that extends VersionedObject or implements the VersionedObjectConstructor * example: if TestObject extends VersionedObject, then getExtensionAdminSettings(TestObject) will return an * Observable. You should only create 1 versioned object for your extensions admin settings. */ getExtensionAdminSettings(type: VersionedObjectConstructor): Observable; }