import { PlexObject } from './base/plexObject.ts'; export type SettingType = 'bool' | 'double' | 'enum' | 'int' | 'text'; export type SettingValue = boolean | number | string; export type SettingEnumValues = Record | string[]; export interface SettingResponse { id: string; label: string; summary: string; type: SettingType; default: SettingValue; value: SettingValue; hidden: boolean; advanced: boolean; group: string; enumValues?: string; } export declare class Settings extends PlexObject { static key: string; _settings: Record; _data: SettingResponse[]; all(): Setting[]; get(id: string): Setting; /** * Save any outstanding settnig changes to the PlexServer. This * performs a full reload() of Settings after complete. */ save(): Promise; _loadData(data: SettingResponse[]): void; } /** * Represents a single Plex setting */ export declare class Setting extends PlexObject { /** Setting id (or name). */ id: string; /** Short description of what this setting is. */ label: string; /** Long description of what this setting is. */ summary: string; /** Setting type (text, int, double, bool). */ type: SettingType; /** Default value for this setting. */ default: SettingValue; /** Current value for this setting. */ value: SettingValue; /** True if this is a hidden setting. */ hidden: boolean; /** True if this is an advanced setting. */ advanced: boolean; /** Group name this setting is categorized as. */ group: string; /** List or dictionary of valis values for this setting. */ enumValues?: SettingEnumValues; _setValue: SettingValue | null; /** * Set a new value for this setitng. NOTE: You must call {@link Settings.save} before * any changes to setting values are persisted to the PlexServer. */ set(value: SettingValue): void; toQueryValue(value?: SettingValue): string; _loadData(data: SettingResponse): void; private _cast; private _getEnumValues; } export declare class Preferences extends Setting { static TAG: "Preferences"; FILTER: "preferences"; }