/** * @license * Copyright 2025 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import type { Settings, SettingScope, LoadedSettings } from '../config/settings.js'; import type { SettingDefinition, SettingsType, SettingsValue } from '../config/settingsSchema.js'; type FlattenedSchema = Record; /** Returns a flattened schema, the first call is memoized for future requests. */ export declare function getFlattenedSchema(): FlattenedSchema; declare function clearFlattenedSchema(): void; /** * Get all settings grouped by category */ export declare function getSettingsByCategory(): Record>; /** * Get a setting definition by key */ export declare function getSettingDefinition(key: string): (SettingDefinition & { key: string; }) | undefined; /** * Check if a setting requires restart */ export declare function requiresRestart(key: string): boolean; /** * Get the default value for a setting */ export declare function getDefaultValue(key: string): SettingsValue; /** * Get all setting keys that require restart */ export declare function getRestartRequiredSettings(): string[]; /** * Recursively gets a value from a nested object using a key path array. */ export declare function getNestedValue(obj: Record, path: string[]): unknown; /** * Get the effective value for a setting, considering inheritance from higher scopes * Always returns a value (never undefined) - falls back to default if not set anywhere */ export declare function getEffectiveValue(key: string, settings: Settings, mergedSettings: Settings): SettingsValue; /** * Get all setting keys from the schema */ export declare function getAllSettingKeys(): string[]; /** * Get settings by type */ export declare function getSettingsByType(type: SettingsType): Array; /** * Get settings that require restart */ export declare function getSettingsRequiringRestart(): Array; /** * Validate if a setting key exists in the schema */ export declare function isValidSettingKey(key: string): boolean; /** * Get the category for a setting */ export declare function getSettingCategory(key: string): string | undefined; /** * Check if a setting should be shown in the settings dialog */ export declare function shouldShowInDialog(key: string): boolean; /** * Get all settings that should be shown in the dialog, grouped by category */ export declare function getDialogSettingsByCategory(): Record>; /** * Get settings by type that should be shown in the dialog */ export declare function getDialogSettingsByType(type: SettingsType): Array; /** * Get all setting keys that should be shown in the dialog */ export declare function getDialogSettingKeys(): string[]; /** * Get the current value for a setting in a specific scope * Always returns a value (never undefined) - falls back to default if not set anywhere */ export declare function getSettingValue(key: string, settings: Settings, mergedSettings: Settings): boolean; /** * Check if a setting value is modified from its default */ export declare function isSettingModified(key: string, value: boolean): boolean; /** * Check if a setting exists in the original settings file for a scope */ export declare function settingExistsInScope(key: string, scopeSettings: Settings): boolean; /** * Set a setting value in the pending settings */ export declare function setPendingSettingValue(key: string, value: boolean, pendingSettings: Settings): Settings; /** * Generic setter: Set a setting value (boolean, number, string, etc.) in the pending settings */ export declare function setPendingSettingValueAny(key: string, value: SettingsValue, pendingSettings: Settings): Settings; /** * Check if any modified settings require a restart */ export declare function hasRestartRequiredSettings(modifiedSettings: Set): boolean; /** * Get the restart required settings from a set of modified settings */ export declare function getRestartRequiredFromModified(modifiedSettings: Set): string[]; /** * Save modified settings to the appropriate scope */ export declare function saveModifiedSettings(modifiedSettings: Set, pendingSettings: Settings, loadedSettings: LoadedSettings, scope: SettingScope): void; /** * Get the display value for a setting, showing current scope value with default change indicator */ export declare function getDisplayValue(key: string, settings: Settings, _mergedSettings: Settings, modifiedSettings: Set, pendingSettings?: Settings): string; /** * Check if a setting doesn't exist in current scope (should be greyed out) */ export declare function isDefaultValue(key: string, settings: Settings): boolean; /** * Check if a setting value is inherited (not set at current scope) */ export declare function isValueInherited(key: string, settings: Settings, _mergedSettings: Settings): boolean; /** * Get the effective value for display, considering inheritance * Always returns a boolean value (never undefined) */ export declare function getEffectiveDisplayValue(key: string, settings: Settings, mergedSettings: Settings): boolean; export declare const TEST_ONLY: { clearFlattenedSchema: typeof clearFlattenedSchema; }; export {};