import { IStringDictionary } from "../../../base/common/collections.js"; import { URI, UriComponents } from "../../../base/common/uri.js"; export declare function isConfigurationOverrides(obj: unknown): obj is IConfigurationOverrides; export interface IConfigurationOverrides { overrideIdentifier?: string | null; resource?: URI | null; } export declare function isConfigurationUpdateOverrides(obj: unknown): obj is IConfigurationUpdateOverrides; export type IConfigurationUpdateOverrides = Omit & { overrideIdentifiers?: string[] | null; }; export declare enum ConfigurationTarget { APPLICATION = 1, USER = 2, USER_LOCAL = 3, USER_REMOTE = 4, WORKSPACE = 5, WORKSPACE_FOLDER = 6, DEFAULT = 7, MEMORY = 8 } export declare function ConfigurationTargetToString(configurationTarget: ConfigurationTarget): "APPLICATION" | "USER" | "USER_LOCAL" | "USER_REMOTE" | "WORKSPACE" | "WORKSPACE_FOLDER" | "DEFAULT" | "MEMORY"; export interface IConfigurationChange { keys: string[]; overrides: [ string, string[] ][]; } export interface IConfigurationChangeEvent { readonly source: ConfigurationTarget; readonly affectedKeys: ReadonlySet; readonly change: IConfigurationChange; affectsConfiguration(configuration: string, overrides?: IConfigurationOverrides): boolean; } export interface IInspectValue { readonly value?: T; readonly override?: T; readonly overrides?: { readonly identifiers: string[]; readonly value: T; }[]; } export interface IConfigurationValue { readonly defaultValue?: T; readonly applicationValue?: T; readonly userValue?: T; readonly userLocalValue?: T; readonly userRemoteValue?: T; readonly workspaceValue?: T; readonly workspaceFolderValue?: T; readonly memoryValue?: T; readonly policyValue?: T; readonly value?: T; readonly default?: IInspectValue; readonly application?: IInspectValue; readonly user?: IInspectValue; readonly userLocal?: IInspectValue; readonly userRemote?: IInspectValue; readonly workspace?: IInspectValue; readonly workspaceFolder?: IInspectValue; readonly memory?: IInspectValue; readonly policy?: { value?: T; }; readonly overrideIdentifiers?: string[]; } export declare function getConfigValueInTarget(configValue: IConfigurationValue, scope: ConfigurationTarget): T | undefined; export declare function isConfigured(configValue: IConfigurationValue): configValue is IConfigurationValue & { value: T; }; export interface IConfigurationUpdateOptions { /** * If `true`, do not notifies the error to user by showing the message box. Default is `false`. */ donotNotifyError?: boolean; /** * How to handle dirty file when updating the configuration. */ handleDirtyFile?: "save" | "revert"; } export interface IConfigurationModel { contents: IStringDictionary; keys: string[]; overrides: IOverrides[]; raw?: ReadonlyArray> | IStringDictionary; } export interface IOverrides { keys: string[]; contents: IStringDictionary; identifiers: string[]; } export interface IConfigurationData { defaults: IConfigurationModel; policy: IConfigurationModel; application: IConfigurationModel; userLocal: IConfigurationModel; userRemote: IConfigurationModel; workspace: IConfigurationModel; folders: [ UriComponents, IConfigurationModel ][]; } export interface IConfigurationCompareResult { added: string[]; removed: string[]; updated: string[]; overrides: [ string, string[] ][]; } export declare function toValuesTree(properties: IStringDictionary, conflictReporter: (message: string) => void): IStringDictionary; export declare function addToValueTree(settingsTreeRoot: IStringDictionary, key: string, value: unknown, conflictReporter: (message: string) => void): void; export declare function removeFromValueTree(valueTree: IStringDictionary, key: string): void; /** * A helper function to get the configuration value with a specific settings path (e.g. config.some.setting) */ export declare function getConfigurationValue(config: IStringDictionary, settingPath: string): T | undefined; export declare function getConfigurationValue(config: IStringDictionary, settingPath: string, defaultValue: T): T; export declare function merge(base: IStringDictionary, add: IStringDictionary, overwrite: boolean): void; export declare function getLanguageTagSettingPlainKey(settingKey: string): string;