import { type QueryParamValue } from '../baseFunctionality.ts'; import type { PlexServer } from '../server.ts'; /** * Base class for all? Plex objects */ export declare abstract class PlexObject { /** xml element tag */ static TAG: string | null; /** xml element type */ static TYPE: string | null; readonly server: PlexServer; /** plex relative url */ key: string; /** * WeakRef to the parent object that this object is built from. */ readonly parent?: WeakRef; protected _detailsKey: string; protected initpath: string; protected _INCLUDES?: Record; constructor(server: PlexServer, data: any, initpath?: string, parent?: PlexObject); /** * Reload the data for this object from this.key. */ reload(ekey?: string): Promise; /** * Refreshing a Library or individual item causes the metadata for the item to be * refreshed, even if it already has metadata. You can think of refreshing as * "update metadata for the requested item even if it already has some". You should * refresh a Library or individual item if: */ refresh(): Promise; /** * Returns True if this object is a child of the given class. */ isChildOf(cls: any): boolean; protected _buildDetailsKey(args?: Record): string; protected _buildQueryKey(key: string | number, params?: Record): string; protected abstract _loadData(data: any): void; }