{"version":3,"sources":["../src/core/errors.ts","../src/core/utils.ts","../src/core/client.ts","../src/sonarr/resources/series.ts","../src/sonarr/resources/episode.ts","../src/sonarr/resources/calendar.ts","../src/sonarr/resources/command.ts","../src/sonarr/resources/queue.ts","../src/sonarr/resources/history.ts","../src/sonarr/resources/qualityProfile.ts","../src/sonarr/resources/customFormat.ts","../src/sonarr/resources/downloadClient.ts","../src/sonarr/resources/indexer.ts","../src/sonarr/resources/tag.ts","../src/sonarr/resources/rootFolder.ts","../src/sonarr/resources/system.ts","../src/sonarr/resources/release.ts","../src/sonarr/resources/importList.ts","../src/sonarr/resources/notification.ts","../src/sonarr/resources/metadata.ts","../src/sonarr/resources/blocklist.ts","../src/sonarr/resources/manualImport.ts","../src/sonarr/resources/parse.ts","../src/sonarr/resources/config.ts","../src/sonarr/resources/delayProfile.ts","../src/sonarr/resources/remotePathMapping.ts","../src/sonarr/resources/autoTagging.ts","../src/sonarr/resources/language.ts","../src/sonarr/resources/localization.ts","../src/sonarr/resources/customFilter.ts","../src/sonarr/resources/seasonPass.ts","../src/sonarr/resources/wanted.ts","../src/sonarr/resources/filesystem.ts","../src/sonarr/resources/mediaCover.ts","../src/sonarr/client.ts","../src/radarr/resources/movie.ts","../src/radarr/resources/movieFile.ts","../src/radarr/resources/calendar.ts","../src/radarr/resources/command.ts","../src/radarr/resources/queue.ts","../src/radarr/resources/history.ts","../src/radarr/resources/qualityProfile.ts","../src/radarr/resources/customFormat.ts","../src/radarr/resources/downloadClient.ts","../src/radarr/resources/indexer.ts","../src/radarr/resources/tag.ts","../src/radarr/resources/rootFolder.ts","../src/radarr/resources/system.ts","../src/radarr/resources/release.ts","../src/radarr/resources/importList.ts","../src/radarr/resources/notification.ts","../src/radarr/resources/metadata.ts","../src/radarr/resources/blocklist.ts","../src/radarr/resources/manualImport.ts","../src/radarr/resources/parse.ts","../src/radarr/resources/config.ts","../src/radarr/resources/delayProfile.ts","../src/radarr/resources/remotePathMapping.ts","../src/radarr/resources/autoTagging.ts","../src/radarr/resources/collection.ts","../src/radarr/resources/credit.ts","../src/radarr/resources/extraFile.ts","../src/radarr/resources/rename.ts","../src/radarr/resources/language.ts","../src/radarr/resources/localization.ts","../src/radarr/resources/customFilter.ts","../src/radarr/resources/wanted.ts","../src/radarr/resources/filesystem.ts","../src/radarr/resources/mediaCover.ts","../src/radarr/client.ts","../src/prowlarr/resources/indexer.ts","../src/prowlarr/resources/search.ts","../src/prowlarr/resources/application.ts","../src/prowlarr/resources/appProfile.ts","../src/prowlarr/resources/indexerProxy.ts","../src/prowlarr/resources/command.ts","../src/prowlarr/resources/history.ts","../src/prowlarr/resources/downloadClient.ts","../src/prowlarr/resources/notification.ts","../src/prowlarr/resources/tag.ts","../src/prowlarr/resources/system.ts","../src/prowlarr/resources/config.ts","../src/prowlarr/resources/customFilter.ts","../src/prowlarr/resources/filesystem.ts","../src/prowlarr/resources/localization.ts","../src/prowlarr/resources/newznab.ts","../src/prowlarr/client.ts","../src/lidarr/resources/artist.ts","../src/lidarr/resources/album.ts","../src/lidarr/resources/track.ts","../src/lidarr/resources/calendar.ts","../src/lidarr/resources/command.ts","../src/lidarr/resources/queue.ts","../src/lidarr/resources/history.ts","../src/lidarr/resources/manualImport.ts","../src/lidarr/resources/qualityProfile.ts","../src/lidarr/resources/metadataProfile.ts","../src/lidarr/resources/tag.ts","../src/lidarr/resources/rootFolder.ts","../src/lidarr/resources/wanted.ts","../src/lidarr/resources/system.ts","../src/lidarr/client.ts","../src/readarr/resources/author.ts","../src/readarr/resources/book.ts","../src/readarr/resources/edition.ts","../src/readarr/resources/bookFile.ts","../src/readarr/resources/calendar.ts","../src/readarr/resources/command.ts","../src/readarr/resources/queue.ts","../src/readarr/resources/history.ts","../src/readarr/resources/manualImport.ts","../src/readarr/resources/qualityProfile.ts","../src/readarr/resources/metadataProfile.ts","../src/readarr/resources/tag.ts","../src/readarr/resources/rootFolder.ts","../src/readarr/resources/wanted.ts","../src/readarr/resources/system.ts","../src/readarr/client.ts"],"names":["CalendarResource","CommandResource_","QueueResource","encodeEventType","normalize","HistoryResource","QualityProfileResource","QualityDefinitionResource","CustomFormatResource","DownloadClientResource","DownloadClientConfigResource","IndexerResource","IndexerConfigResource","IndexerFlagResource","TagResource","TagDetailsResource","RootFolderResource","SystemInfoResource","HealthResource","DiskSpaceResource","TaskResource","BackupResource","LogResource","LogFileResource","UpdateResource","ReleaseResource","ImportListResource","ImportListConfigResource","NotificationResource","MetadataResource","BlocklistResource","ManualImportResource","ParseResource","HostConfigResource","UiConfigResource","NamingConfigResource","MediaManagementConfigResource","DelayProfileResource","RemotePathMappingResource","AutoTaggingResource","LanguageResourceApi","LocalizationResource","CustomFilterResource","WantedResource","FileSystemResource","MediaCoverResource","ENTITY_HISTORY_EVENT_TYPE_VALUES","MetadataProfileResource"],"mappings":"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","file":"index.cjs","sourcesContent":["export interface ValidationErrorDetail {\n  propertyName: string\n  errorMessage: string\n  attemptedValue?: unknown\n  severity?: string\n}\n\nexport class ArrError extends Error {\n  constructor(\n    message: string,\n    public readonly statusCode: number,\n    public readonly details?: unknown\n  ) {\n    super(message)\n    this.name = 'ArrError'\n    Object.setPrototypeOf(this, new.target.prototype)\n  }\n}\n\nexport class ValidationError extends ArrError {\n  constructor(\n    message: string,\n    public readonly validationErrors: ValidationErrorDetail[]\n  ) {\n    super(message, 400, validationErrors)\n    this.name = 'ValidationError'\n  }\n}\n\nexport class NotFoundError extends ArrError {\n  constructor(message: string = 'Resource not found') {\n    super(message, 404)\n    this.name = 'NotFoundError'\n  }\n}\n\nexport class UnauthorizedError extends ArrError {\n  constructor(message: string = 'Invalid API key') {\n    super(message, 401)\n    this.name = 'UnauthorizedError'\n  }\n}\n\nexport class ForbiddenError extends ArrError {\n  constructor(message: string = 'Access forbidden') {\n    super(message, 403)\n    this.name = 'ForbiddenError'\n  }\n}\n\nexport class ConflictError extends ArrError {\n  constructor(message: string = 'Resource conflict') {\n    super(message, 409)\n    this.name = 'ConflictError'\n  }\n}\n\nexport class ServerError extends ArrError {\n  constructor(message: string = 'Internal server error', statusCode: number = 500) {\n    super(message, statusCode)\n    this.name = 'ServerError'\n  }\n}\n\nexport class TimeoutError extends ArrError {\n  constructor(message: string = 'Request timeout') {\n    super(message, 408)\n    this.name = 'TimeoutError'\n  }\n}\n\nexport class NetworkError extends ArrError {\n  constructor(message: string = 'Network error', cause?: Error) {\n    super(message, 0, cause)\n    this.name = 'NetworkError'\n    if (cause) {\n      this.cause = cause\n    }\n  }\n}\n","export function buildQueryParams(\n  params: Record<string, unknown> | undefined\n): URLSearchParams {\n  const searchParams = new URLSearchParams()\n\n  if (!params) {\n    return searchParams\n  }\n\n  for (const [key, value] of Object.entries(params)) {\n    if (value === undefined || value === null) {\n      continue\n    }\n\n    if (Array.isArray(value)) {\n      for (const item of value) {\n        if (item !== undefined && item !== null) {\n          searchParams.append(key, String(item))\n        }\n      }\n    } else if (value instanceof Date) {\n      searchParams.set(key, value.toISOString())\n    } else if (typeof value === 'boolean') {\n      searchParams.set(key, value ? 'true' : 'false')\n    } else {\n      searchParams.set(key, String(value))\n    }\n  }\n\n  return searchParams\n}\n\nexport function joinPath(base: string, path: string): string {\n  const normalizedBase = base.endsWith('/') ? base.slice(0, -1) : base\n  const normalizedPath = path.startsWith('/') ? path : `/${path}`\n  return `${normalizedBase}${normalizedPath}`\n}\n\nexport function sleep(ms: number): Promise<void> {\n  return new Promise((resolve) => setTimeout(resolve, ms))\n}\n\n/**\n * Validates a filename to prevent path traversal attacks.\n * Throws an error if the filename contains path separators, parent directory references,\n * or absolute path indicators.\n */\nexport function validateFilename(filename: string): void {\n  if (!filename || typeof filename !== 'string') {\n    throw new Error('Invalid filename: filename must be a non-empty string')\n  }\n  if (filename.includes('/') || filename.includes('\\\\')) {\n    throw new Error('Invalid filename: path separators are not allowed')\n  }\n  if (filename.includes('..')) {\n    throw new Error('Invalid filename: parent directory references are not allowed')\n  }\n  if (/^[a-zA-Z]:/.test(filename)) {\n    throw new Error('Invalid filename: absolute paths are not allowed')\n  }\n}\n","import type { ClientConfig, RequestConfig, PaginatedResponse, PaginationOptions } from './types.js'\nimport type { ClientMethods } from './resource.js'\nimport {\n  ArrError,\n  ValidationError,\n  NotFoundError,\n  UnauthorizedError,\n  ForbiddenError,\n  ConflictError,\n  ServerError,\n  TimeoutError,\n  NetworkError,\n  type ValidationErrorDetail\n} from './errors.js'\nimport { buildQueryParams, joinPath } from './utils.js'\n\nconst DEFAULT_TIMEOUT = 30000\n\nexport abstract class BaseClient implements ClientMethods {\n  protected readonly config: Required<Pick<ClientConfig, 'baseUrl' | 'apiKey' | 'timeout'>> &\n    Omit<ClientConfig, 'baseUrl' | 'apiKey' | 'timeout'>\n\n  constructor(config: ClientConfig) {\n    if (!config.baseUrl) {\n      throw new Error('baseUrl is required')\n    }\n    if (!config.apiKey) {\n      throw new Error('apiKey is required')\n    }\n\n    this.config = {\n      timeout: DEFAULT_TIMEOUT,\n      ...config,\n      baseUrl: config.baseUrl.endsWith('/') ? config.baseUrl.slice(0, -1) : config.baseUrl\n    }\n  }\n\n  protected async request<T>(\n    method: string,\n    path: string,\n    options?: {\n      params?: Record<string, unknown>\n      body?: unknown\n    }\n  ): Promise<T> {\n    const url = new URL(joinPath(this.config.baseUrl, path))\n\n    if (options?.params) {\n      const queryParams = buildQueryParams(options.params)\n      queryParams.forEach((value, key) => {\n        url.searchParams.append(key, value)\n      })\n    }\n\n    const headers: Record<string, string> = {\n      'X-Api-Key': this.config.apiKey,\n      'Content-Type': 'application/json',\n      Accept: 'application/json',\n      ...this.config.headers\n    }\n\n    const requestConfig: RequestConfig = {\n      url,\n      method,\n      headers,\n      body: options?.body ? JSON.stringify(options.body) : undefined\n    }\n\n    await this.config.onRequest?.(requestConfig)\n\n    let response: Response\n\n    try {\n      response = await fetch(url, {\n        method,\n        headers,\n        body: requestConfig.body,\n        signal: AbortSignal.timeout(this.config.timeout)\n      })\n    } catch (error) {\n      if (error instanceof Error) {\n        if (error.name === 'TimeoutError' || error.name === 'AbortError') {\n          const timeoutError = new TimeoutError(`Request timed out after ${this.config.timeout}ms`)\n          await this.config.onError?.(timeoutError)\n          throw timeoutError\n        }\n        const networkError = new NetworkError(error.message, error)\n        await this.config.onError?.(networkError)\n        throw networkError\n      }\n      throw error\n    }\n\n    await this.config.onResponse?.(response)\n\n    if (!response.ok) {\n      const error = await this.parseError(response)\n      await this.config.onError?.(error)\n      throw error\n    }\n\n    if (response.status === 204 || response.headers.get('content-length') === '0') {\n      return undefined as T\n    }\n\n    const contentType = response.headers.get('content-type')\n    if (contentType?.includes('application/json')) {\n      return response.json() as Promise<T>\n    }\n\n    return undefined as T\n  }\n\n  private async parseError(response: Response): Promise<ArrError> {\n    let body: unknown\n\n    try {\n      const text = await response.text()\n      if (text) {\n        body = JSON.parse(text)\n      }\n    } catch {\n      // Ignore JSON parse errors\n    }\n\n    const message = this.extractErrorMessage(body, response.statusText)\n\n    switch (response.status) {\n      case 400: {\n        const validationErrors = this.extractValidationErrors(body)\n        if (validationErrors.length > 0) {\n          return new ValidationError(message, validationErrors)\n        }\n        return new ArrError(message, 400, body)\n      }\n      case 401:\n        return new UnauthorizedError(message)\n      case 403:\n        return new ForbiddenError(message)\n      case 404:\n        return new NotFoundError(message)\n      case 409:\n        return new ConflictError(message)\n      default:\n        if (response.status >= 500) {\n          return new ServerError(message, response.status)\n        }\n        return new ArrError(message, response.status, body)\n    }\n  }\n\n  private extractErrorMessage(body: unknown, fallback: string): string {\n    if (body && typeof body === 'object') {\n      const obj = body as Record<string, unknown>\n      if (typeof obj.message === 'string') {\n        return obj.message\n      }\n      if (typeof obj.error === 'string') {\n        return obj.error\n      }\n      if (Array.isArray(obj) && obj.length > 0) {\n        const first = obj[0] as Record<string, unknown>\n        if (typeof first.errorMessage === 'string') {\n          return first.errorMessage\n        }\n      }\n    }\n    return fallback || 'Unknown error'\n  }\n\n  private extractValidationErrors(body: unknown): ValidationErrorDetail[] {\n    if (!body || !Array.isArray(body)) {\n      return []\n    }\n\n    return body\n      .filter((item): item is Record<string, unknown> => item && typeof item === 'object')\n      .map((item) => ({\n        propertyName: String(item.propertyName ?? ''),\n        errorMessage: String(item.errorMessage ?? ''),\n        attemptedValue: item.attemptedValue,\n        severity: item.severity ? String(item.severity) : undefined\n      }))\n  }\n\n  get<T>(path: string, params?: Record<string, unknown>): Promise<T> {\n    return this.request<T>('GET', path, { params })\n  }\n\n  post<T>(path: string, body?: unknown, params?: Record<string, unknown>): Promise<T> {\n    return this.request<T>('POST', path, { body, params })\n  }\n\n  async postForm<T>(path: string, formData: FormData, params?: Record<string, unknown>): Promise<T> {\n    const url = new URL(joinPath(this.config.baseUrl, path))\n\n    if (params) {\n      const queryParams = buildQueryParams(params)\n      queryParams.forEach((value, key) => {\n        url.searchParams.append(key, value)\n      })\n    }\n\n    // Don't set Content-Type - let fetch set it with the multipart boundary\n    const headers: Record<string, string> = {\n      'X-Api-Key': this.config.apiKey,\n      Accept: 'application/json',\n      ...this.config.headers\n    }\n\n    const requestConfig: RequestConfig = {\n      url,\n      method: 'POST',\n      headers,\n      body: formData\n    }\n\n    await this.config.onRequest?.(requestConfig)\n\n    let response: Response\n\n    try {\n      response = await fetch(url, {\n        method: 'POST',\n        headers,\n        body: requestConfig.body,\n        signal: AbortSignal.timeout(this.config.timeout)\n      })\n    } catch (error) {\n      if (error instanceof Error) {\n        if (error.name === 'TimeoutError' || error.name === 'AbortError') {\n          const timeoutError = new TimeoutError(`Request timed out after ${this.config.timeout}ms`)\n          await this.config.onError?.(timeoutError)\n          throw timeoutError\n        }\n        const networkError = new NetworkError(error.message, error)\n        await this.config.onError?.(networkError)\n        throw networkError\n      }\n      throw error\n    }\n\n    await this.config.onResponse?.(response)\n\n    if (!response.ok) {\n      const error = await this.parseError(response)\n      await this.config.onError?.(error)\n      throw error\n    }\n\n    if (response.status === 204 || response.headers.get('content-length') === '0') {\n      return undefined as T\n    }\n\n    const contentType = response.headers.get('content-type')\n    if (contentType?.includes('application/json')) {\n      return response.json() as Promise<T>\n    }\n\n    return undefined as T\n  }\n\n  put<T>(path: string, body?: unknown, params?: Record<string, unknown>): Promise<T> {\n    return this.request<T>('PUT', path, { body, params })\n  }\n\n  delete<T>(path: string, body?: unknown, params?: Record<string, unknown>): Promise<T> {\n    return this.request<T>('DELETE', path, { body, params })\n  }\n\n  private async fetchRaw<T>(\n    path: string,\n    params: Record<string, unknown> | undefined,\n    parser: (response: Response) => Promise<T>\n  ): Promise<T> {\n    const url = new URL(joinPath(this.config.baseUrl, path))\n\n    if (params) {\n      const queryParams = buildQueryParams(params)\n      queryParams.forEach((value, key) => {\n        url.searchParams.append(key, value)\n      })\n    }\n\n    const headers: Record<string, string> = {\n      'X-Api-Key': this.config.apiKey,\n      ...this.config.headers\n    }\n\n    const requestConfig: RequestConfig = {\n      url,\n      method: 'GET',\n      headers,\n      body: undefined\n    }\n\n    await this.config.onRequest?.(requestConfig)\n\n    let response: Response\n\n    try {\n      response = await fetch(url, {\n        method: 'GET',\n        headers,\n        signal: AbortSignal.timeout(this.config.timeout)\n      })\n    } catch (error) {\n      if (error instanceof Error) {\n        if (error.name === 'TimeoutError' || error.name === 'AbortError') {\n          const timeoutError = new TimeoutError(`Request timed out after ${this.config.timeout}ms`)\n          await this.config.onError?.(timeoutError)\n          throw timeoutError\n        }\n        const networkError = new NetworkError(error.message, error)\n        await this.config.onError?.(networkError)\n        throw networkError\n      }\n      throw error\n    }\n\n    await this.config.onResponse?.(response)\n\n    if (!response.ok) {\n      const error = await this.parseError(response)\n      await this.config.onError?.(error)\n      throw error\n    }\n\n    return parser(response)\n  }\n\n  async getBuffer(path: string, params?: Record<string, unknown>): Promise<ArrayBuffer> {\n    return this.fetchRaw(path, params, (res) => res.arrayBuffer())\n  }\n\n  async getText(path: string, params?: Record<string, unknown>): Promise<string> {\n    return this.fetchRaw(path, params, (res) => res.text())\n  }\n\n  async *paginate<T>(\n    path: string,\n    options?: PaginationOptions & Record<string, unknown>\n  ): AsyncGenerator<T, void, undefined> {\n    const pageSize = options?.pageSize ?? 50\n    let page = options?.page ?? 1\n    let hasMore = true\n\n    while (hasMore) {\n      const response = await this.get<PaginatedResponse<T>>(path, {\n        ...options,\n        page,\n        pageSize\n      })\n\n      for (const record of response.records) {\n        yield record\n      }\n\n      hasMore = page * pageSize < response.totalRecords\n      page++\n    }\n  }\n\n  async paginateAll<T>(\n    path: string,\n    options?: PaginationOptions & Record<string, unknown>\n  ): Promise<T[]> {\n    const results: T[] = []\n    for await (const record of this.paginate<T>(path, options)) {\n      results.push(record)\n    }\n    return results\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Series, SeriesEditor } from '../types.js'\n\nexport interface GetSeriesOptions {\n  tvdbId?: number\n  includeSeasonImages?: boolean\n  [key: string]: unknown\n}\n\nexport interface DeleteSeriesOptions {\n  deleteFiles?: boolean\n  addImportListExclusion?: boolean\n  [key: string]: unknown\n}\n\nexport class SeriesResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(options?: GetSeriesOptions): Promise<Series[]> {\n    return this.client.get('/api/v3/series', options)\n  }\n\n  async getById(id: number, options?: { includeSeasonImages?: boolean }): Promise<Series> {\n    return this.client.get(`/api/v3/series/${id}`, options)\n  }\n\n  async create(series: Omit<Series, 'id'>): Promise<Series> {\n    return this.client.post('/api/v3/series', series)\n  }\n\n  async update(id: number, series: Partial<Series> & { id: number }, moveFiles?: boolean): Promise<Series> {\n    return this.client.put(`/api/v3/series/${id}`, series, moveFiles !== undefined ? { moveFiles } : undefined)\n  }\n\n  async delete(id: number, options?: DeleteSeriesOptions): Promise<void> {\n    return this.client.delete(`/api/v3/series/${id}`, undefined, options)\n  }\n\n  async lookup(term: string): Promise<Series[]> {\n    return this.client.get('/api/v3/series/lookup', { term })\n  }\n\n  async bulkEdit(resource: SeriesEditor): Promise<Series[]> {\n    return this.client.put('/api/v3/series/editor', resource)\n  }\n\n  async bulkDelete(seriesIds: number[], options?: DeleteSeriesOptions): Promise<void> {\n    return this.client.delete('/api/v3/series/editor', {\n      seriesIds,\n      ...options\n    })\n  }\n\n  async getFolder(id: number): Promise<string> {\n    return this.client.get(`/api/v3/series/${id}/folder`)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Episode, EpisodeFile, EpisodeFileList, RenameEpisode } from '../types.js'\n\nexport interface GetEpisodesOptions {\n  seriesId?: number\n  seasonNumber?: number\n  episodeIds?: number[]\n  episodeFileId?: number\n  includeSeries?: boolean\n  includeEpisodeFile?: boolean\n  includeImages?: boolean\n  [key: string]: unknown\n}\n\nexport interface DeleteEpisodeFileOptions {\n  episodeFileId?: number\n  [key: string]: unknown\n}\n\nexport class EpisodeResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(options?: GetEpisodesOptions): Promise<Episode[]> {\n    return this.client.get('/api/v3/episode', options)\n  }\n\n  async getById(id: number): Promise<Episode> {\n    return this.client.get(`/api/v3/episode/${id}`)\n  }\n\n  async getBySeries(seriesId: number, options?: { seasonNumber?: number; includeImages?: boolean }): Promise<Episode[]> {\n    return this.client.get('/api/v3/episode', { seriesId, ...options })\n  }\n\n  async update(id: number, episode: Partial<Episode> & { id: number }): Promise<Episode> {\n    return this.client.put(`/api/v3/episode/${id}`, episode)\n  }\n\n  async setMonitored(episodeIds: number[], monitored: boolean): Promise<Episode[]> {\n    return this.client.put('/api/v3/episode/monitor', { episodeIds, monitored })\n  }\n}\n\nexport class EpisodeFileResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(options?: { seriesId?: number; episodeFileIds?: number[] }): Promise<EpisodeFile[]> {\n    return this.client.get('/api/v3/episodefile', options)\n  }\n\n  async getById(id: number): Promise<EpisodeFile> {\n    return this.client.get(`/api/v3/episodefile/${id}`)\n  }\n\n  async getBySeries(seriesId: number): Promise<EpisodeFile[]> {\n    return this.client.get('/api/v3/episodefile', { seriesId })\n  }\n\n  async update(id: number, file: Partial<EpisodeFile> & { id: number }): Promise<EpisodeFile> {\n    return this.client.put(`/api/v3/episodefile/${id}`, file)\n  }\n\n  async bulkUpdate(files: EpisodeFileList): Promise<EpisodeFile[]> {\n    return this.client.put('/api/v3/episodefile/editor', files)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/episodefile/${id}`)\n  }\n\n  async bulkDelete(episodeFileIds: number[]): Promise<void> {\n    return this.client.delete('/api/v3/episodefile/bulk', { episodeFileIds })\n  }\n}\n\nexport class RenameEpisodeResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(seriesId: number, seasonNumber?: number): Promise<RenameEpisode[]> {\n    return this.client.get('/api/v3/rename', { seriesId, seasonNumber })\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Episode } from '../types.js'\n\nexport interface CalendarOptions {\n  start?: Date | string\n  end?: Date | string\n  unmonitored?: boolean\n  includeSeries?: boolean\n  includeEpisodeFile?: boolean\n  includeEpisodeImages?: boolean\n  tags?: number[]\n}\n\nexport interface CalendarFeedOptions {\n  pastDays?: number\n  futureDays?: number\n  tags?: string\n  unmonitored?: boolean\n  premieresOnly?: boolean\n  asAllDay?: boolean\n  [key: string]: unknown\n}\n\nexport class CalendarResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: CalendarOptions): Promise<Episode[]> {\n    const params: Record<string, unknown> = {}\n\n    if (options?.start) {\n      params.start = options.start instanceof Date ? options.start.toISOString() : options.start\n    }\n    if (options?.end) {\n      params.end = options.end instanceof Date ? options.end.toISOString() : options.end\n    }\n    if (options?.unmonitored !== undefined) {\n      params.unmonitored = options.unmonitored\n    }\n    if (options?.includeSeries !== undefined) {\n      params.includeSeries = options.includeSeries\n    }\n    if (options?.includeEpisodeFile !== undefined) {\n      params.includeEpisodeFile = options.includeEpisodeFile\n    }\n    if (options?.includeEpisodeImages !== undefined) {\n      params.includeEpisodeImages = options.includeEpisodeImages\n    }\n    if (options?.tags) {\n      params.tags = options.tags\n    }\n\n    return this.client.get('/api/v3/calendar', params)\n  }\n\n  async getById(id: number): Promise<Episode> {\n    return this.client.get(`/api/v3/calendar/${id}`)\n  }\n\n  /**\n   * Get calendar as iCalendar feed (.ics format)\n   * Note: Returns raw iCalendar text, not JSON\n   */\n  async getICalFeed(options?: CalendarFeedOptions): Promise<string> {\n    return this.client.getText('/feed/v3/calendar/sonarr.ics', options)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { CommandResource, QualityModel, Language, ReleaseType } from '../types.js'\n\n/**\n * File entry for the ManualImport command\n */\nexport interface SonarrManualImportFile {\n  path: string\n  folderName?: string\n  downloadId?: string\n  quality?: QualityModel\n  languages?: Language[]\n  releaseGroup?: string\n  indexerFlags?: number\n  seriesId?: number\n  episodeIds?: number[]\n  seasonNumber?: number\n  releaseType?: ReleaseType\n}\n\nexport type SonarrCommand =\n  | { name: 'ApplicationCheckUpdate' }\n  | { name: 'Backup' }\n  | { name: 'ClearBlocklist' }\n  | { name: 'ClearLog' }\n  | { name: 'Cutoff'; seriesId?: number }\n  | { name: 'DownloadedEpisodesScan'; path?: string; downloadClientId?: string; importMode?: 'Auto' | 'Move' | 'Copy' }\n  | { name: 'EpisodeSearch'; episodeIds: number[] }\n  | { name: 'MissingEpisodeSearch'; seriesId?: number }\n  | { name: 'MoveSeries'; seriesIds: number[]; destinationRootFolder: string }\n  | { name: 'RefreshSeries'; seriesId?: number }\n  | { name: 'RenameSeries'; seriesIds: number[] }\n  | { name: 'RenameFiles'; seriesId: number; files: number[] }\n  | { name: 'Rescan' }\n  | { name: 'RssSync' }\n  | { name: 'SeasonSearch'; seriesId: number; seasonNumber: number }\n  | { name: 'SeriesSearch'; seriesId: number }\n  | { name: 'UpdateAll' }\n  | { name: 'ManualImport'; files: SonarrManualImportFile[]; importMode?: 'Auto' | 'Move' | 'Copy' }\n\nexport class CommandResource_ {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<CommandResource[]> {\n    return this.client.get('/api/v3/command')\n  }\n\n  async getById(id: number): Promise<CommandResource> {\n    return this.client.get(`/api/v3/command/${id}`)\n  }\n\n  async execute(command: SonarrCommand): Promise<CommandResource> {\n    return this.client.post('/api/v3/command', command)\n  }\n\n  async cancel(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/command/${id}`)\n  }\n\n  // Convenience methods\n  async refreshSeries(seriesId?: number): Promise<CommandResource> {\n    return this.execute({ name: 'RefreshSeries', seriesId })\n  }\n\n  async rescan(): Promise<CommandResource> {\n    return this.execute({ name: 'Rescan' })\n  }\n\n  async rssSync(): Promise<CommandResource> {\n    return this.execute({ name: 'RssSync' })\n  }\n\n  async episodeSearch(episodeIds: number[]): Promise<CommandResource> {\n    return this.execute({ name: 'EpisodeSearch', episodeIds })\n  }\n\n  async seasonSearch(seriesId: number, seasonNumber: number): Promise<CommandResource> {\n    return this.execute({ name: 'SeasonSearch', seriesId, seasonNumber })\n  }\n\n  async seriesSearch(seriesId: number): Promise<CommandResource> {\n    return this.execute({ name: 'SeriesSearch', seriesId })\n  }\n\n  async missingEpisodeSearch(seriesId?: number): Promise<CommandResource> {\n    return this.execute({ name: 'MissingEpisodeSearch', seriesId })\n  }\n\n  async backup(): Promise<CommandResource> {\n    return this.execute({ name: 'Backup' })\n  }\n\n  async clearBlocklist(): Promise<CommandResource> {\n    return this.execute({ name: 'ClearBlocklist' })\n  }\n\n  async renameSeries(seriesIds: number[]): Promise<CommandResource> {\n    return this.execute({ name: 'RenameSeries', seriesIds })\n  }\n\n  async renameFiles(seriesId: number, files: number[]): Promise<CommandResource> {\n    return this.execute({ name: 'RenameFiles', seriesId, files })\n  }\n\n  async downloadedEpisodesScan(options?: { path?: string; downloadClientId?: string; importMode?: 'Auto' | 'Move' | 'Copy' }): Promise<CommandResource> {\n    return this.execute({ name: 'DownloadedEpisodesScan', ...options })\n  }\n\n  async moveSeries(seriesIds: number[], destinationRootFolder: string): Promise<CommandResource> {\n    return this.execute({ name: 'MoveSeries', seriesIds, destinationRootFolder })\n  }\n\n  async manualImport(files: SonarrManualImportFile[], importMode?: 'Auto' | 'Move' | 'Copy'): Promise<CommandResource> {\n    return this.execute({ name: 'ManualImport', files, importMode })\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { PaginationOptions, PaginatedResponse } from '../../core/types.js'\nimport type { Queue, QueueStatus } from '../types.js'\n\nexport interface GetQueueOptions extends PaginationOptions {\n  includeUnknownSeriesItems?: boolean\n  includeSeries?: boolean\n  includeEpisode?: boolean\n  seriesIds?: number[]\n  protocol?: 'unknown' | 'usenet' | 'torrent'\n  languages?: number[]\n  quality?: number[]\n  status?: ('unknown' | 'queued' | 'paused' | 'downloading' | 'completed' | 'failed' | 'warning' | 'delay' | 'downloadClientUnavailable' | 'fallback')[]\n}\n\nexport interface GetQueueDetailsOptions {\n  seriesId?: number\n  episodeIds?: number[]\n  includeSeries?: boolean\n  includeEpisode?: boolean\n  [key: string]: unknown\n}\n\nexport interface DeleteQueueOptions {\n  removeFromClient?: boolean\n  blocklist?: boolean\n  skipRedownload?: boolean\n  changeCategory?: boolean\n  [key: string]: unknown\n}\n\nexport class QueueResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: GetQueueOptions): Promise<PaginatedResponse<Queue>> {\n    return this.client.get('/api/v3/queue', options)\n  }\n\n  async getById(id: number): Promise<Queue> {\n    return this.client.get(`/api/v3/queue/${id}`)\n  }\n\n  async *getAll(options?: Omit<GetQueueOptions, 'page'>): AsyncGenerator<Queue, void, undefined> {\n    yield* this.client.paginate<Queue>('/api/v3/queue', options)\n  }\n\n  async getAllArray(options?: Omit<GetQueueOptions, 'page'>): Promise<Queue[]> {\n    return this.client.paginateAll<Queue>('/api/v3/queue', options)\n  }\n\n  async delete(id: number, options?: DeleteQueueOptions): Promise<void> {\n    return this.client.delete(`/api/v3/queue/${id}`, undefined, options)\n  }\n\n  async bulkDelete(ids: number[], options?: DeleteQueueOptions): Promise<void> {\n    return this.client.delete('/api/v3/queue/bulk', { ids }, options)\n  }\n\n  async getStatus(): Promise<QueueStatus> {\n    return this.client.get('/api/v3/queue/status')\n  }\n\n  async getDetails(options?: GetQueueDetailsOptions): Promise<Queue[]> {\n    return this.client.get('/api/v3/queue/details', options)\n  }\n\n  async grab(id: number): Promise<void> {\n    return this.client.post(`/api/v3/queue/grab/${id}`)\n  }\n\n  async bulkGrab(ids: number[]): Promise<void> {\n    return this.client.post('/api/v3/queue/grab/bulk', { ids })\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { PaginationOptions, PaginatedResponse } from '../../core/types.js'\nimport type { History, EpisodeHistoryEventType } from '../types.js'\n\n// Numeric values pinned to upstream Sonarr enum\n// (src/NzbDrone.Core/History/EpisodeHistory.cs — EpisodeHistoryEventType).\n// The .NET model binder rejects the string form even though the OpenAPI\n// spec declares it; numeric values are stable across releases.\nconst EPISODE_HISTORY_EVENT_TYPE_VALUES = {\n  unknown: 0,\n  grabbed: 1,\n  seriesFolderImported: 2,\n  downloadFolderImported: 3,\n  downloadFailed: 4,\n  episodeFileDeleted: 5,\n  episodeFileRenamed: 6,\n  downloadIgnored: 7,\n} as const satisfies Record<EpisodeHistoryEventType, number>\n\nexport type EventTypeInput = EpisodeHistoryEventType | number\nexport type EventTypeFilter = EventTypeInput | EventTypeInput[]\n\nfunction encodeEventType(value: EventTypeInput): number\nfunction encodeEventType(value: EventTypeFilter): number | number[]\nfunction encodeEventType(value: EventTypeFilter | undefined): number | number[] | undefined\nfunction encodeEventType(value: EventTypeFilter | undefined): number | number[] | undefined {\n  if (value === undefined) return undefined\n  if (Array.isArray(value)) {\n    return value.map((v) => (typeof v === 'number' ? v : EPISODE_HISTORY_EVENT_TYPE_VALUES[v]))\n  }\n  return typeof value === 'number' ? value : EPISODE_HISTORY_EVENT_TYPE_VALUES[value]\n}\n\nexport interface GetHistoryOptions extends PaginationOptions {\n  includeEpisode?: boolean\n  includeSeries?: boolean\n  eventType?: EventTypeFilter\n  episodeId?: number\n  downloadId?: string\n  seriesIds?: number[]\n  languages?: number[]\n  quality?: number\n}\n\nfunction normalize(options: GetHistoryOptions | undefined) {\n  if (!options) return options\n  const { eventType, ...rest } = options\n  return eventType === undefined ? rest : { ...rest, eventType: encodeEventType(eventType) }\n}\n\nexport class HistoryResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: GetHistoryOptions): Promise<PaginatedResponse<History>> {\n    return this.client.get('/api/v3/history', normalize(options))\n  }\n\n  async *getAll(options?: Omit<GetHistoryOptions, 'page'>): AsyncGenerator<History, void, undefined> {\n    yield* this.client.paginate<History>('/api/v3/history', normalize(options))\n  }\n\n  async getAllArray(options?: Omit<GetHistoryOptions, 'page'>): Promise<History[]> {\n    return this.client.paginateAll<History>('/api/v3/history', normalize(options))\n  }\n\n  async getSeries(seriesId: number, options?: { seasonNumber?: number; includeEpisode?: boolean; includeSeries?: boolean }): Promise<History[]> {\n    return this.client.get('/api/v3/history/series', { seriesId, ...options })\n  }\n\n  async getSince(date: Date | string, options?: { eventType?: EventTypeInput; includeEpisode?: boolean; includeSeries?: boolean }): Promise<History[]> {\n    const dateStr = date instanceof Date ? date.toISOString() : date\n    const { eventType, ...rest } = options ?? {}\n    return this.client.get('/api/v3/history/since', {\n      date: dateStr,\n      ...rest,\n      ...(eventType !== undefined && { eventType: encodeEventType(eventType) }),\n    })\n  }\n\n  async markAsFailed(id: number): Promise<void> {\n    return this.client.post('/api/v3/history/failed', undefined, { id })\n  }\n\n  async markAsFailedByHistoryId(historyId: number): Promise<void> {\n    return this.client.post(`/api/v3/history/failed/${historyId}`)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { QualityProfile, QualityDefinition, QualityDefinitionLimits } from '../types.js'\n\nexport class QualityProfileResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<QualityProfile[]> {\n    return this.client.get('/api/v3/qualityprofile')\n  }\n\n  async getById(id: number): Promise<QualityProfile> {\n    return this.client.get(`/api/v3/qualityprofile/${id}`)\n  }\n\n  async create(profile: Omit<QualityProfile, 'id'>): Promise<QualityProfile> {\n    return this.client.post('/api/v3/qualityprofile', profile)\n  }\n\n  async update(id: number, profile: Partial<QualityProfile> & { id: number }): Promise<QualityProfile> {\n    return this.client.put(`/api/v3/qualityprofile/${id}`, profile)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/qualityprofile/${id}`)\n  }\n\n  async getSchema(): Promise<QualityProfile> {\n    return this.client.get('/api/v3/qualityprofile/schema')\n  }\n}\n\nexport class QualityDefinitionResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<QualityDefinition[]> {\n    return this.client.get('/api/v3/qualitydefinition')\n  }\n\n  async getById(id: number): Promise<QualityDefinition> {\n    return this.client.get(`/api/v3/qualitydefinition/${id}`)\n  }\n\n  async update(id: number, definition: Partial<QualityDefinition> & { id: number }): Promise<QualityDefinition> {\n    return this.client.put(`/api/v3/qualitydefinition/${id}`, definition)\n  }\n\n  async updateAll(definitions: QualityDefinition[]): Promise<QualityDefinition[]> {\n    return this.client.put('/api/v3/qualitydefinition/update', definitions)\n  }\n\n  async getLimits(): Promise<QualityDefinitionLimits> {\n    return this.client.get('/api/v3/qualitydefinition/limits')\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { CustomFormat, CustomFormatBulk } from '../types.js'\n\nexport class CustomFormatResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<CustomFormat[]> {\n    return this.client.get('/api/v3/customformat')\n  }\n\n  async getById(id: number): Promise<CustomFormat> {\n    return this.client.get(`/api/v3/customformat/${id}`)\n  }\n\n  async create(format: Omit<CustomFormat, 'id'>): Promise<CustomFormat> {\n    return this.client.post('/api/v3/customformat', format)\n  }\n\n  async update(id: number, format: Partial<CustomFormat> & { id: number }): Promise<CustomFormat> {\n    return this.client.put(`/api/v3/customformat/${id}`, format)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/customformat/${id}`)\n  }\n\n  async bulkDelete(ids: number[]): Promise<void> {\n    return this.client.delete('/api/v3/customformat/bulk', { ids })\n  }\n\n  async bulkUpdate(formats: CustomFormatBulk): Promise<CustomFormat[]> {\n    return this.client.put('/api/v3/customformat/bulk', formats)\n  }\n\n  async getSchema(): Promise<CustomFormat[]> {\n    return this.client.get('/api/v3/customformat/schema')\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { DownloadClient, DownloadClientBulk, DownloadClientConfig } from '../types.js'\n\nexport class DownloadClientResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<DownloadClient[]> {\n    return this.client.get('/api/v3/downloadclient')\n  }\n\n  async getById(id: number): Promise<DownloadClient> {\n    return this.client.get(`/api/v3/downloadclient/${id}`)\n  }\n\n  async create(client: Omit<DownloadClient, 'id'>): Promise<DownloadClient> {\n    return this.client.post('/api/v3/downloadclient', client)\n  }\n\n  async update(id: number, client: Partial<DownloadClient> & { id: number }, forceSave?: boolean): Promise<DownloadClient> {\n    return this.client.put(`/api/v3/downloadclient/${id}`, client, forceSave !== undefined ? { forceSave } : undefined)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/downloadclient/${id}`)\n  }\n\n  async bulkUpdate(clients: DownloadClientBulk): Promise<DownloadClient[]> {\n    return this.client.put('/api/v3/downloadclient/bulk', clients)\n  }\n\n  async bulkDelete(ids: number[]): Promise<void> {\n    return this.client.delete('/api/v3/downloadclient/bulk', { ids })\n  }\n\n  async getSchema(): Promise<DownloadClient[]> {\n    return this.client.get('/api/v3/downloadclient/schema')\n  }\n\n  async test(client: Partial<DownloadClient>): Promise<void> {\n    return this.client.post('/api/v3/downloadclient/test', client)\n  }\n\n  async testAll(): Promise<void> {\n    return this.client.post('/api/v3/downloadclient/testall')\n  }\n}\n\nexport class DownloadClientConfigResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<DownloadClientConfig> {\n    return this.client.get('/api/v3/config/downloadclient')\n  }\n\n  async update(config: Partial<DownloadClientConfig> & { id: number }): Promise<DownloadClientConfig> {\n    return this.client.put(`/api/v3/config/downloadclient/${config.id}`, config)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Indexer, IndexerBulk, IndexerConfig, IndexerFlag } from '../types.js'\n\nexport class IndexerResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Indexer[]> {\n    return this.client.get('/api/v3/indexer')\n  }\n\n  async getById(id: number): Promise<Indexer> {\n    return this.client.get(`/api/v3/indexer/${id}`)\n  }\n\n  async create(indexer: Omit<Indexer, 'id'>): Promise<Indexer> {\n    return this.client.post('/api/v3/indexer', indexer)\n  }\n\n  async update(id: number, indexer: Partial<Indexer> & { id: number }, forceSave?: boolean): Promise<Indexer> {\n    return this.client.put(`/api/v3/indexer/${id}`, indexer, forceSave !== undefined ? { forceSave } : undefined)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/indexer/${id}`)\n  }\n\n  async bulkUpdate(indexers: IndexerBulk): Promise<Indexer[]> {\n    return this.client.put('/api/v3/indexer/bulk', indexers)\n  }\n\n  async bulkDelete(ids: number[]): Promise<void> {\n    return this.client.delete('/api/v3/indexer/bulk', { ids })\n  }\n\n  async getSchema(): Promise<Indexer[]> {\n    return this.client.get('/api/v3/indexer/schema')\n  }\n\n  async test(indexer: Partial<Indexer>): Promise<void> {\n    return this.client.post('/api/v3/indexer/test', indexer)\n  }\n\n  async testAll(): Promise<void> {\n    return this.client.post('/api/v3/indexer/testall')\n  }\n}\n\nexport class IndexerConfigResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<IndexerConfig> {\n    return this.client.get('/api/v3/config/indexer')\n  }\n\n  async update(config: Partial<IndexerConfig> & { id: number }): Promise<IndexerConfig> {\n    return this.client.put(`/api/v3/config/indexer/${config.id}`, config)\n  }\n}\n\nexport class IndexerFlagResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<IndexerFlag[]> {\n    return this.client.get('/api/v3/indexerflag')\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Tag, TagDetails } from '../types.js'\n\nexport class TagResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Tag[]> {\n    return this.client.get('/api/v3/tag')\n  }\n\n  async getById(id: number): Promise<Tag> {\n    return this.client.get(`/api/v3/tag/${id}`)\n  }\n\n  async create(tag: Omit<Tag, 'id'>): Promise<Tag> {\n    return this.client.post('/api/v3/tag', tag)\n  }\n\n  async update(id: number, tag: Partial<Tag> & { id: number }): Promise<Tag> {\n    return this.client.put(`/api/v3/tag/${id}`, tag)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/tag/${id}`)\n  }\n}\n\nexport class TagDetailsResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<TagDetails[]> {\n    return this.client.get('/api/v3/tag/detail')\n  }\n\n  async getById(id: number): Promise<TagDetails> {\n    return this.client.get(`/api/v3/tag/detail/${id}`)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { RootFolder } from '../types.js'\n\nexport class RootFolderResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<RootFolder[]> {\n    return this.client.get('/api/v3/rootfolder')\n  }\n\n  async getById(id: number): Promise<RootFolder> {\n    return this.client.get(`/api/v3/rootfolder/${id}`)\n  }\n\n  async create(folder: Omit<RootFolder, 'id'>): Promise<RootFolder> {\n    return this.client.post('/api/v3/rootfolder', folder)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/rootfolder/${id}`)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { SystemResource, Health, DiskSpace, Task, Backup, Log, LogFile, Update } from '../types.js'\nimport type { PaginationOptions, PaginatedResponse } from '../../core/types.js'\nimport { validateFilename } from '../../core/utils.js'\n\nexport class SystemInfoResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<SystemResource> {\n    return this.client.get('/api/v3/system/status')\n  }\n\n  async getRoutes(): Promise<unknown[]> {\n    return this.client.get('/api/v3/system/routes')\n  }\n\n  async getDuplicateRoutes(): Promise<unknown[]> {\n    return this.client.get('/api/v3/system/routes/duplicate')\n  }\n\n  async restart(): Promise<void> {\n    return this.client.post('/api/v3/system/restart')\n  }\n\n  async shutdown(): Promise<void> {\n    return this.client.post('/api/v3/system/shutdown')\n  }\n\n  /**\n   * Simple health check - returns \"Pong\"\n   */\n  async ping(): Promise<string> {\n    return this.client.get('/ping')\n  }\n}\n\nexport class HealthResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Health[]> {\n    return this.client.get('/api/v3/health')\n  }\n}\n\nexport class DiskSpaceResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<DiskSpace[]> {\n    return this.client.get('/api/v3/diskspace')\n  }\n}\n\nexport class TaskResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Task[]> {\n    return this.client.get('/api/v3/system/task')\n  }\n\n  async getById(id: number): Promise<Task> {\n    return this.client.get(`/api/v3/system/task/${id}`)\n  }\n}\n\nexport class BackupResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Backup[]> {\n    return this.client.get('/api/v3/system/backup')\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/system/backup/${id}`)\n  }\n\n  async restore(id: number): Promise<void> {\n    return this.client.post(`/api/v3/system/backup/restore/${id}`)\n  }\n\n  async restoreUpload(formData: FormData): Promise<void> {\n    return this.client.postForm('/api/v3/system/backup/restore/upload', formData)\n  }\n}\n\nexport class LogResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: PaginationOptions): Promise<PaginatedResponse<Log>> {\n    return this.client.get('/api/v3/log', options)\n  }\n\n  async *getAll(options?: Omit<PaginationOptions, 'page'>): AsyncGenerator<Log, void, undefined> {\n    yield* this.client.paginate<Log>('/api/v3/log', options)\n  }\n\n  async getAllArray(options?: Omit<PaginationOptions, 'page'>): Promise<Log[]> {\n    return this.client.paginateAll<Log>('/api/v3/log', options)\n  }\n}\n\nexport class LogFileResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<LogFile[]> {\n    return this.client.get('/api/v3/log/file')\n  }\n\n  async getUpdate(): Promise<LogFile[]> {\n    return this.client.get('/api/v3/log/file/update')\n  }\n\n  /**\n   * Download a specific log file's contents\n   */\n  async download(filename: string): Promise<string> {\n    validateFilename(filename)\n    const sanitized = encodeURIComponent(filename)\n    return this.client.getText(`/api/v3/log/file/${sanitized}`)\n  }\n\n  /**\n   * Download a specific update log file's contents\n   */\n  async downloadUpdate(filename: string): Promise<string> {\n    validateFilename(filename)\n    const sanitized = encodeURIComponent(filename)\n    return this.client.getText(`/api/v3/log/file/update/${sanitized}`)\n  }\n}\n\nexport class UpdateResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Update[]> {\n    return this.client.get('/api/v3/update')\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Release, ReleaseProfile } from '../types.js'\n\nexport interface SearchReleasesOptions {\n  episodeId?: number\n  seriesId?: number\n  seasonNumber?: number\n  [key: string]: unknown\n}\n\nexport class ReleaseResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: SearchReleasesOptions): Promise<Release[]> {\n    return this.client.get('/api/v3/release', options)\n  }\n\n  async getById(id: number): Promise<Release> {\n    return this.client.get(`/api/v3/release/${id}`)\n  }\n\n  async download(release: { guid: string; indexerId: number }): Promise<Release> {\n    return this.client.post('/api/v3/release', release)\n  }\n\n  async push(release: Release): Promise<Release[]> {\n    return this.client.post('/api/v3/release/push', release)\n  }\n}\n\nexport class ReleaseProfileResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<ReleaseProfile[]> {\n    return this.client.get('/api/v3/releaseprofile')\n  }\n\n  async getById(id: number): Promise<ReleaseProfile> {\n    return this.client.get(`/api/v3/releaseprofile/${id}`)\n  }\n\n  async create(profile: Omit<ReleaseProfile, 'id'>): Promise<ReleaseProfile> {\n    return this.client.post('/api/v3/releaseprofile', profile)\n  }\n\n  async update(id: number, profile: Partial<ReleaseProfile> & { id: number }): Promise<ReleaseProfile> {\n    return this.client.put(`/api/v3/releaseprofile/${id}`, profile)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/releaseprofile/${id}`)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { ImportList, ImportListBulk, ImportListConfig, ImportListExclusion, ImportListExclusionBulk } from '../types.js'\nimport type { PaginationOptions, PaginatedResponse } from '../../core/types.js'\n\nexport class ImportListResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<ImportList[]> {\n    return this.client.get('/api/v3/importlist')\n  }\n\n  async getById(id: number): Promise<ImportList> {\n    return this.client.get(`/api/v3/importlist/${id}`)\n  }\n\n  async create(list: Omit<ImportList, 'id'>): Promise<ImportList> {\n    return this.client.post('/api/v3/importlist', list)\n  }\n\n  async update(id: number, list: Partial<ImportList> & { id: number }, forceSave?: boolean): Promise<ImportList> {\n    return this.client.put(`/api/v3/importlist/${id}`, list, forceSave !== undefined ? { forceSave } : undefined)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/importlist/${id}`)\n  }\n\n  async bulkUpdate(lists: ImportListBulk): Promise<ImportList[]> {\n    return this.client.put('/api/v3/importlist/bulk', lists)\n  }\n\n  async bulkDelete(ids: number[]): Promise<void> {\n    return this.client.delete('/api/v3/importlist/bulk', { ids })\n  }\n\n  async getSchema(): Promise<ImportList[]> {\n    return this.client.get('/api/v3/importlist/schema')\n  }\n\n  async test(list: Partial<ImportList>): Promise<void> {\n    return this.client.post('/api/v3/importlist/test', list)\n  }\n\n  async testAll(): Promise<void> {\n    return this.client.post('/api/v3/importlist/testall')\n  }\n}\n\nexport class ImportListConfigResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<ImportListConfig> {\n    return this.client.get('/api/v3/config/importlist')\n  }\n\n  async update(config: Partial<ImportListConfig> & { id: number }): Promise<ImportListConfig> {\n    return this.client.put(`/api/v3/config/importlist/${config.id}`, config)\n  }\n}\n\nexport class ImportListExclusionResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: PaginationOptions): Promise<PaginatedResponse<ImportListExclusion>> {\n    return this.client.get('/api/v3/importlistexclusion/paged', options)\n  }\n\n  async getAll(): Promise<ImportListExclusion[]> {\n    return this.client.get('/api/v3/importlistexclusion')\n  }\n\n  async getById(id: number): Promise<ImportListExclusion> {\n    return this.client.get(`/api/v3/importlistexclusion/${id}`)\n  }\n\n  async create(exclusion: Omit<ImportListExclusion, 'id'>): Promise<ImportListExclusion> {\n    return this.client.post('/api/v3/importlistexclusion', exclusion)\n  }\n\n  async update(id: number, exclusion: Partial<ImportListExclusion> & { id: number }): Promise<ImportListExclusion> {\n    return this.client.put(`/api/v3/importlistexclusion/${id}`, exclusion)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/importlistexclusion/${id}`)\n  }\n\n  async bulkCreate(exclusions: ImportListExclusion[]): Promise<ImportListExclusion[]> {\n    return this.client.post('/api/v3/importlistexclusion/bulk', exclusions)\n  }\n\n  async bulkDelete(exclusions: ImportListExclusionBulk): Promise<void> {\n    return this.client.delete('/api/v3/importlistexclusion/bulk', exclusions)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Notification } from '../types.js'\n\nexport class NotificationResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Notification[]> {\n    return this.client.get('/api/v3/notification')\n  }\n\n  async getById(id: number): Promise<Notification> {\n    return this.client.get(`/api/v3/notification/${id}`)\n  }\n\n  async create(notification: Omit<Notification, 'id'>): Promise<Notification> {\n    return this.client.post('/api/v3/notification', notification)\n  }\n\n  async update(id: number, notification: Partial<Notification> & { id: number }, forceSave?: boolean): Promise<Notification> {\n    return this.client.put(`/api/v3/notification/${id}`, notification, forceSave !== undefined ? { forceSave } : undefined)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/notification/${id}`)\n  }\n\n  async getSchema(): Promise<Notification[]> {\n    return this.client.get('/api/v3/notification/schema')\n  }\n\n  async test(notification: Partial<Notification>): Promise<void> {\n    return this.client.post('/api/v3/notification/test', notification)\n  }\n\n  async testAll(): Promise<void> {\n    return this.client.post('/api/v3/notification/testall')\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Metadata } from '../types.js'\n\nexport class MetadataResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Metadata[]> {\n    return this.client.get('/api/v3/metadata')\n  }\n\n  async getById(id: number): Promise<Metadata> {\n    return this.client.get(`/api/v3/metadata/${id}`)\n  }\n\n  async create(metadata: Omit<Metadata, 'id'>): Promise<Metadata> {\n    return this.client.post('/api/v3/metadata', metadata)\n  }\n\n  async update(id: number, metadata: Partial<Metadata> & { id: number }, forceSave?: boolean): Promise<Metadata> {\n    return this.client.put(`/api/v3/metadata/${id}`, metadata, forceSave !== undefined ? { forceSave } : undefined)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/metadata/${id}`)\n  }\n\n  async getSchema(): Promise<Metadata[]> {\n    return this.client.get('/api/v3/metadata/schema')\n  }\n\n  async test(metadata: Partial<Metadata>): Promise<void> {\n    return this.client.post('/api/v3/metadata/test', metadata)\n  }\n\n  async testAll(): Promise<void> {\n    return this.client.post('/api/v3/metadata/testall')\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { PaginationOptions, PaginatedResponse } from '../../core/types.js'\nimport type { Blocklist } from '../types.js'\n\nexport interface GetBlocklistOptions extends PaginationOptions {\n  seriesIds?: number[]\n}\n\nexport class BlocklistResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: GetBlocklistOptions): Promise<PaginatedResponse<Blocklist>> {\n    return this.client.get('/api/v3/blocklist', options)\n  }\n\n  async *getAll(options?: Omit<GetBlocklistOptions, 'page'>): AsyncGenerator<Blocklist, void, undefined> {\n    yield* this.client.paginate<Blocklist>('/api/v3/blocklist', options)\n  }\n\n  async getAllArray(options?: Omit<GetBlocklistOptions, 'page'>): Promise<Blocklist[]> {\n    return this.client.paginateAll<Blocklist>('/api/v3/blocklist', options)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/blocklist/${id}`)\n  }\n\n  async bulkDelete(ids: number[]): Promise<void> {\n    return this.client.delete('/api/v3/blocklist/bulk', { ids })\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { ManualImport, ManualImportReprocess } from '../types.js'\n\nexport interface GetManualImportOptions {\n  folder?: string\n  downloadId?: string\n  seriesId?: number\n  seasonNumber?: number\n  filterExistingFiles?: boolean\n  [key: string]: unknown\n}\n\nexport class ManualImportResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: GetManualImportOptions): Promise<ManualImport[]> {\n    return this.client.get('/api/v3/manualimport', options)\n  }\n\n  async process(imports: ManualImportReprocess[]): Promise<void> {\n    return this.client.post('/api/v3/manualimport', imports)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Parse } from '../types.js'\n\nexport class ParseResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(title: string): Promise<Parse> {\n    return this.client.get('/api/v3/parse', { title })\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { HostConfig, UiConfig, NamingConfig, MediaManagementConfig } from '../types.js'\n\nexport class HostConfigResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<HostConfig> {\n    return this.client.get('/api/v3/config/host')\n  }\n\n  async update(config: Partial<HostConfig> & { id: number }): Promise<HostConfig> {\n    return this.client.put(`/api/v3/config/host/${config.id}`, config)\n  }\n}\n\nexport class UiConfigResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<UiConfig> {\n    return this.client.get('/api/v3/config/ui')\n  }\n\n  async update(config: Partial<UiConfig> & { id: number }): Promise<UiConfig> {\n    return this.client.put(`/api/v3/config/ui/${config.id}`, config)\n  }\n}\n\nexport class NamingConfigResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<NamingConfig> {\n    return this.client.get('/api/v3/config/naming')\n  }\n\n  async update(config: Partial<NamingConfig> & { id: number }): Promise<NamingConfig> {\n    return this.client.put(`/api/v3/config/naming/${config.id}`, config)\n  }\n\n  async getExamples(options?: { id?: number; renameEpisodes?: boolean; replaceIllegalCharacters?: boolean; multiEpisodeStyle?: number; standardEpisodeFormat?: string; dailyEpisodeFormat?: string; animeEpisodeFormat?: string; seriesFolderFormat?: string; seasonFolderFormat?: string; specialsFolderFormat?: string }): Promise<unknown> {\n    return this.client.get('/api/v3/config/naming/examples', options)\n  }\n}\n\nexport class MediaManagementConfigResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<MediaManagementConfig> {\n    return this.client.get('/api/v3/config/mediamanagement')\n  }\n\n  async update(config: Partial<MediaManagementConfig> & { id: number }): Promise<MediaManagementConfig> {\n    return this.client.put(`/api/v3/config/mediamanagement/${config.id}`, config)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { DelayProfile } from '../types.js'\n\nexport class DelayProfileResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<DelayProfile[]> {\n    return this.client.get('/api/v3/delayprofile')\n  }\n\n  async getById(id: number): Promise<DelayProfile> {\n    return this.client.get(`/api/v3/delayprofile/${id}`)\n  }\n\n  async create(profile: Omit<DelayProfile, 'id'>): Promise<DelayProfile> {\n    return this.client.post('/api/v3/delayprofile', profile)\n  }\n\n  async update(id: number, profile: Partial<DelayProfile> & { id: number }): Promise<DelayProfile> {\n    return this.client.put(`/api/v3/delayprofile/${id}`, profile)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/delayprofile/${id}`)\n  }\n\n  async reorder(id: number, afterId?: number): Promise<DelayProfile[]> {\n    return this.client.put(`/api/v3/delayprofile/reorder/${id}`, undefined, afterId !== undefined ? { after: afterId } : undefined)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { RemotePathMapping } from '../types.js'\n\nexport class RemotePathMappingResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<RemotePathMapping[]> {\n    return this.client.get('/api/v3/remotepathmapping')\n  }\n\n  async getById(id: number): Promise<RemotePathMapping> {\n    return this.client.get(`/api/v3/remotepathmapping/${id}`)\n  }\n\n  async create(mapping: Omit<RemotePathMapping, 'id'>): Promise<RemotePathMapping> {\n    return this.client.post('/api/v3/remotepathmapping', mapping)\n  }\n\n  async update(id: number, mapping: Partial<RemotePathMapping> & { id: number }): Promise<RemotePathMapping> {\n    return this.client.put(`/api/v3/remotepathmapping/${id}`, mapping)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/remotepathmapping/${id}`)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { AutoTagging } from '../types.js'\n\nexport class AutoTaggingResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<AutoTagging[]> {\n    return this.client.get('/api/v3/autotagging')\n  }\n\n  async getById(id: number): Promise<AutoTagging> {\n    return this.client.get(`/api/v3/autotagging/${id}`)\n  }\n\n  async create(autoTagging: Omit<AutoTagging, 'id'>): Promise<AutoTagging> {\n    return this.client.post('/api/v3/autotagging', autoTagging)\n  }\n\n  async update(id: number, autoTagging: Partial<AutoTagging> & { id: number }): Promise<AutoTagging> {\n    return this.client.put(`/api/v3/autotagging/${id}`, autoTagging)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/autotagging/${id}`)\n  }\n\n  async getSchema(): Promise<AutoTagging> {\n    return this.client.get('/api/v3/autotagging/schema')\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { LanguageResource, LanguageProfile } from '../types.js'\n\nexport class LanguageResourceApi {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<LanguageResource[]> {\n    return this.client.get('/api/v3/language')\n  }\n\n  async getById(id: number): Promise<LanguageResource> {\n    return this.client.get(`/api/v3/language/${id}`)\n  }\n}\n\nexport class LanguageProfileResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<LanguageProfile[]> {\n    return this.client.get('/api/v3/languageprofile')\n  }\n\n  async getById(id: number): Promise<LanguageProfile> {\n    return this.client.get(`/api/v3/languageprofile/${id}`)\n  }\n\n  async getSchema(): Promise<LanguageProfile> {\n    return this.client.get('/api/v3/languageprofile/schema')\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Localization, LocalizationLanguage } from '../types.js'\n\nexport class LocalizationResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<Localization> {\n    return this.client.get('/api/v3/localization')\n  }\n\n  async getLanguages(): Promise<LocalizationLanguage[]> {\n    return this.client.get('/api/v3/localization/language')\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { CustomFilter } from '../types.js'\n\nexport class CustomFilterResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<CustomFilter[]> {\n    return this.client.get('/api/v3/customfilter')\n  }\n\n  async getById(id: number): Promise<CustomFilter> {\n    return this.client.get(`/api/v3/customfilter/${id}`)\n  }\n\n  async create(filter: Omit<CustomFilter, 'id'>): Promise<CustomFilter> {\n    return this.client.post('/api/v3/customfilter', filter)\n  }\n\n  async update(id: number, filter: Partial<CustomFilter> & { id: number }): Promise<CustomFilter> {\n    return this.client.put(`/api/v3/customfilter/${id}`, filter)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/customfilter/${id}`)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { SeasonPass } from '../types.js'\n\nexport class SeasonPassResource {\n  constructor(private client: ClientMethods) {}\n\n  async update(seasonPass: SeasonPass): Promise<void> {\n    return this.client.post('/api/v3/seasonpass', seasonPass)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { PaginationOptions, PaginatedResponse } from '../../core/types.js'\nimport type { Episode } from '../types.js'\n\nexport interface GetWantedOptions extends PaginationOptions {\n  includeSeries?: boolean\n  includeEpisodeFile?: boolean\n  includeImages?: boolean\n  monitored?: boolean\n}\n\nexport class WantedResource {\n  constructor(private client: ClientMethods) {}\n\n  /**\n   * Get episodes that don't meet quality cutoff\n   */\n  async cutoff(options?: GetWantedOptions): Promise<PaginatedResponse<Episode>> {\n    return this.client.get('/api/v3/wanted/cutoff', options)\n  }\n\n  /**\n   * Get all episodes not meeting quality cutoff (async generator)\n   */\n  async *cutoffAll(options?: Omit<GetWantedOptions, 'page'>): AsyncGenerator<Episode, void, undefined> {\n    yield* this.client.paginate<Episode>('/api/v3/wanted/cutoff', options)\n  }\n\n  /**\n   * Get all episodes not meeting quality cutoff as array\n   */\n  async cutoffAllArray(options?: Omit<GetWantedOptions, 'page'>): Promise<Episode[]> {\n    return this.client.paginateAll<Episode>('/api/v3/wanted/cutoff', options)\n  }\n\n  /**\n   * Get missing episodes\n   */\n  async missing(options?: GetWantedOptions): Promise<PaginatedResponse<Episode>> {\n    return this.client.get('/api/v3/wanted/missing', options)\n  }\n\n  /**\n   * Get all missing episodes (async generator)\n   */\n  async *missingAll(options?: Omit<GetWantedOptions, 'page'>): AsyncGenerator<Episode, void, undefined> {\n    yield* this.client.paginate<Episode>('/api/v3/wanted/missing', options)\n  }\n\n  /**\n   * Get all missing episodes as array\n   */\n  async missingAllArray(options?: Omit<GetWantedOptions, 'page'>): Promise<Episode[]> {\n    return this.client.paginateAll<Episode>('/api/v3/wanted/missing', options)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\n\nexport interface FileSystemEntry {\n  type: 'file' | 'folder' | 'drive'\n  name: string\n  path: string\n  size?: number\n  lastModified?: string\n}\n\nexport interface GetFileSystemOptions {\n  path: string\n  includeFiles?: boolean\n  allowFoldersWithoutTrailingSlashes?: boolean\n  [key: string]: unknown\n}\n\nexport class FileSystemResource {\n  constructor(private client: ClientMethods) {}\n\n  /**\n   * Browse the filesystem at the given path\n   */\n  async get(options: GetFileSystemOptions): Promise<FileSystemEntry[]> {\n    return this.client.get('/api/v3/filesystem', options)\n  }\n\n  /**\n   * Get the type of a path (file, folder, etc.)\n   */\n  async getType(path: string): Promise<{ type: string }> {\n    return this.client.get('/api/v3/filesystem/type', { path })\n  }\n\n  /**\n   * Get media files in a directory\n   */\n  async getMediaFiles(path: string): Promise<FileSystemEntry[]> {\n    return this.client.get('/api/v3/filesystem/mediafiles', { path })\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { MediaCoverTypes } from '../types.js'\n\nexport class MediaCoverResource {\n  constructor(private client: ClientMethods) {}\n\n  /**\n   * Get a media cover image as binary data\n   * @param seriesId The series ID\n   * @param filename The cover filename (e.g., \"poster.jpg\", \"banner.jpg\", \"fanart.jpg\")\n   * @returns ArrayBuffer containing the image data\n   */\n  async get(seriesId: number, filename: string): Promise<ArrayBuffer> {\n    return this.client.getBuffer(`/api/v3/mediacover/${seriesId}/${filename}`)\n  }\n\n  /**\n   * Get a poster image for a series\n   */\n  async getPoster(seriesId: number): Promise<ArrayBuffer> {\n    return this.get(seriesId, 'poster.jpg')\n  }\n\n  /**\n   * Get a banner image for a series\n   */\n  async getBanner(seriesId: number): Promise<ArrayBuffer> {\n    return this.get(seriesId, 'banner.jpg')\n  }\n\n  /**\n   * Get a fanart image for a series\n   */\n  async getFanart(seriesId: number): Promise<ArrayBuffer> {\n    return this.get(seriesId, 'fanart.jpg')\n  }\n\n  /**\n   * Get a cover image by type\n   * @param seriesId The series ID\n   * @param coverType The type of cover to retrieve\n   */\n  async getByType(seriesId: number, coverType: MediaCoverTypes): Promise<ArrayBuffer> {\n    return this.get(seriesId, `${coverType}.jpg`)\n  }\n}\n","import { BaseClient, type ClientConfig } from '../core/index.js'\nimport { SeriesResource } from './resources/series.js'\nimport { EpisodeResource, EpisodeFileResource, RenameEpisodeResource } from './resources/episode.js'\nimport { CalendarResource } from './resources/calendar.js'\nimport { CommandResource_ } from './resources/command.js'\nimport { QueueResource } from './resources/queue.js'\nimport { HistoryResource } from './resources/history.js'\nimport { QualityProfileResource, QualityDefinitionResource } from './resources/qualityProfile.js'\nimport { CustomFormatResource } from './resources/customFormat.js'\nimport { DownloadClientResource, DownloadClientConfigResource } from './resources/downloadClient.js'\nimport { IndexerResource, IndexerConfigResource, IndexerFlagResource } from './resources/indexer.js'\nimport { TagResource, TagDetailsResource } from './resources/tag.js'\nimport { RootFolderResource } from './resources/rootFolder.js'\nimport { SystemInfoResource, HealthResource, DiskSpaceResource, TaskResource, BackupResource, LogResource, LogFileResource, UpdateResource } from './resources/system.js'\nimport { ReleaseResource, ReleaseProfileResource } from './resources/release.js'\nimport { ImportListResource, ImportListConfigResource, ImportListExclusionResource } from './resources/importList.js'\nimport { NotificationResource } from './resources/notification.js'\nimport { MetadataResource } from './resources/metadata.js'\nimport { BlocklistResource } from './resources/blocklist.js'\nimport { ManualImportResource } from './resources/manualImport.js'\nimport { ParseResource } from './resources/parse.js'\nimport { HostConfigResource, UiConfigResource, NamingConfigResource, MediaManagementConfigResource } from './resources/config.js'\nimport { DelayProfileResource } from './resources/delayProfile.js'\nimport { RemotePathMappingResource } from './resources/remotePathMapping.js'\nimport { AutoTaggingResource } from './resources/autoTagging.js'\nimport { LanguageResourceApi, LanguageProfileResource } from './resources/language.js'\nimport { LocalizationResource } from './resources/localization.js'\nimport { CustomFilterResource } from './resources/customFilter.js'\nimport { SeasonPassResource } from './resources/seasonPass.js'\nimport { WantedResource } from './resources/wanted.js'\nimport { FileSystemResource } from './resources/filesystem.js'\nimport { MediaCoverResource } from './resources/mediaCover.js'\n\nexport class SonarrClient extends BaseClient {\n  public readonly series: SeriesResource\n  public readonly episode: EpisodeResource\n  public readonly episodeFile: EpisodeFileResource\n  public readonly renameEpisode: RenameEpisodeResource\n  public readonly calendar: CalendarResource\n  public readonly command: CommandResource_\n  public readonly queue: QueueResource\n  public readonly history: HistoryResource\n  public readonly qualityProfile: QualityProfileResource\n  public readonly qualityDefinition: QualityDefinitionResource\n  public readonly customFormat: CustomFormatResource\n  public readonly downloadClient: DownloadClientResource\n  public readonly downloadClientConfig: DownloadClientConfigResource\n  public readonly indexer: IndexerResource\n  public readonly indexerConfig: IndexerConfigResource\n  public readonly indexerFlag: IndexerFlagResource\n  public readonly tag: TagResource\n  public readonly tagDetails: TagDetailsResource\n  public readonly rootFolder: RootFolderResource\n  public readonly system: SystemInfoResource\n  public readonly health: HealthResource\n  public readonly diskSpace: DiskSpaceResource\n  public readonly task: TaskResource\n  public readonly backup: BackupResource\n  public readonly log: LogResource\n  public readonly logFile: LogFileResource\n  public readonly update: UpdateResource\n  public readonly release: ReleaseResource\n  public readonly releaseProfile: ReleaseProfileResource\n  public readonly importList: ImportListResource\n  public readonly importListConfig: ImportListConfigResource\n  public readonly importListExclusion: ImportListExclusionResource\n  public readonly notification: NotificationResource\n  public readonly metadata: MetadataResource\n  public readonly blocklist: BlocklistResource\n  public readonly manualImport: ManualImportResource\n  public readonly parse: ParseResource\n  public readonly hostConfig: HostConfigResource\n  public readonly uiConfig: UiConfigResource\n  public readonly namingConfig: NamingConfigResource\n  public readonly mediaManagementConfig: MediaManagementConfigResource\n  public readonly delayProfile: DelayProfileResource\n  public readonly remotePathMapping: RemotePathMappingResource\n  public readonly autoTagging: AutoTaggingResource\n  public readonly language: LanguageResourceApi\n  public readonly languageProfile: LanguageProfileResource\n  public readonly localization: LocalizationResource\n  public readonly customFilter: CustomFilterResource\n  public readonly seasonPass: SeasonPassResource\n  public readonly wanted: WantedResource\n  public readonly filesystem: FileSystemResource\n  public readonly mediaCover: MediaCoverResource\n\n  constructor(config: ClientConfig) {\n    super(config)\n\n    this.series = new SeriesResource(this)\n    this.episode = new EpisodeResource(this)\n    this.episodeFile = new EpisodeFileResource(this)\n    this.renameEpisode = new RenameEpisodeResource(this)\n    this.calendar = new CalendarResource(this)\n    this.command = new CommandResource_(this)\n    this.queue = new QueueResource(this)\n    this.history = new HistoryResource(this)\n    this.qualityProfile = new QualityProfileResource(this)\n    this.qualityDefinition = new QualityDefinitionResource(this)\n    this.customFormat = new CustomFormatResource(this)\n    this.downloadClient = new DownloadClientResource(this)\n    this.downloadClientConfig = new DownloadClientConfigResource(this)\n    this.indexer = new IndexerResource(this)\n    this.indexerConfig = new IndexerConfigResource(this)\n    this.indexerFlag = new IndexerFlagResource(this)\n    this.tag = new TagResource(this)\n    this.tagDetails = new TagDetailsResource(this)\n    this.rootFolder = new RootFolderResource(this)\n    this.system = new SystemInfoResource(this)\n    this.health = new HealthResource(this)\n    this.diskSpace = new DiskSpaceResource(this)\n    this.task = new TaskResource(this)\n    this.backup = new BackupResource(this)\n    this.log = new LogResource(this)\n    this.logFile = new LogFileResource(this)\n    this.update = new UpdateResource(this)\n    this.release = new ReleaseResource(this)\n    this.releaseProfile = new ReleaseProfileResource(this)\n    this.importList = new ImportListResource(this)\n    this.importListConfig = new ImportListConfigResource(this)\n    this.importListExclusion = new ImportListExclusionResource(this)\n    this.notification = new NotificationResource(this)\n    this.metadata = new MetadataResource(this)\n    this.blocklist = new BlocklistResource(this)\n    this.manualImport = new ManualImportResource(this)\n    this.parse = new ParseResource(this)\n    this.hostConfig = new HostConfigResource(this)\n    this.uiConfig = new UiConfigResource(this)\n    this.namingConfig = new NamingConfigResource(this)\n    this.mediaManagementConfig = new MediaManagementConfigResource(this)\n    this.delayProfile = new DelayProfileResource(this)\n    this.remotePathMapping = new RemotePathMappingResource(this)\n    this.autoTagging = new AutoTaggingResource(this)\n    this.language = new LanguageResourceApi(this)\n    this.languageProfile = new LanguageProfileResource(this)\n    this.localization = new LocalizationResource(this)\n    this.customFilter = new CustomFilterResource(this)\n    this.seasonPass = new SeasonPassResource(this)\n    this.wanted = new WantedResource(this)\n    this.filesystem = new FileSystemResource(this)\n    this.mediaCover = new MediaCoverResource(this)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Movie, MovieEditor } from '../types.js'\n\nexport interface GetMovieOptions {\n  tmdbId?: number\n  excludeLocalCovers?: boolean\n  [key: string]: unknown\n}\n\nexport interface DeleteMovieOptions {\n  deleteFiles?: boolean\n  addImportExclusion?: boolean\n  [key: string]: unknown\n}\n\nexport class MovieResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(options?: GetMovieOptions): Promise<Movie[]> {\n    return this.client.get('/api/v3/movie', options)\n  }\n\n  async getById(id: number): Promise<Movie> {\n    return this.client.get(`/api/v3/movie/${id}`)\n  }\n\n  async create(movie: Omit<Movie, 'id'>): Promise<Movie> {\n    return this.client.post('/api/v3/movie', movie)\n  }\n\n  async update(id: number, movie: Partial<Movie> & { id: number }, moveFiles?: boolean): Promise<Movie> {\n    return this.client.put(`/api/v3/movie/${id}`, movie, moveFiles !== undefined ? { moveFiles } : undefined)\n  }\n\n  async delete(id: number, options?: DeleteMovieOptions): Promise<void> {\n    return this.client.delete(`/api/v3/movie/${id}`, undefined, options)\n  }\n\n  async lookup(term: string): Promise<Movie[]> {\n    return this.client.get('/api/v3/movie/lookup', { term })\n  }\n\n  async lookupByTmdbId(tmdbId: number): Promise<Movie[]> {\n    return this.client.get('/api/v3/movie/lookup/tmdb', { tmdbId })\n  }\n\n  async lookupByImdbId(imdbId: string): Promise<Movie[]> {\n    return this.client.get('/api/v3/movie/lookup/imdb', { imdbId })\n  }\n\n  async bulkEdit(resource: MovieEditor): Promise<Movie[]> {\n    return this.client.put('/api/v3/movie/editor', resource)\n  }\n\n  async bulkDelete(movieIds: number[], options?: DeleteMovieOptions): Promise<void> {\n    return this.client.delete('/api/v3/movie/editor', {\n      movieIds,\n      ...options\n    })\n  }\n\n  async import(movies: Movie[]): Promise<Movie[]> {\n    return this.client.post('/api/v3/movie/import', movies)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { MovieFile, MovieFileList } from '../types.js'\n\nexport class MovieFileResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(options?: { movieId?: number; movieFileIds?: number[] }): Promise<MovieFile[]> {\n    return this.client.get('/api/v3/moviefile', options)\n  }\n\n  async getById(id: number): Promise<MovieFile> {\n    return this.client.get(`/api/v3/moviefile/${id}`)\n  }\n\n  async getByMovie(movieId: number): Promise<MovieFile[]> {\n    return this.client.get('/api/v3/moviefile', { movieId })\n  }\n\n  async update(id: number, file: Partial<MovieFile> & { id: number }): Promise<MovieFile> {\n    return this.client.put(`/api/v3/moviefile/${id}`, file)\n  }\n\n  async bulkUpdate(files: MovieFileList): Promise<MovieFile[]> {\n    return this.client.put('/api/v3/moviefile/editor', files)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/moviefile/${id}`)\n  }\n\n  async bulkDelete(movieFileIds: number[]): Promise<void> {\n    return this.client.delete('/api/v3/moviefile/bulk', { movieFileIds })\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Movie } from '../types.js'\n\nexport interface CalendarOptions {\n  start?: Date | string\n  end?: Date | string\n  unmonitored?: boolean\n  tags?: number[]\n}\n\nexport interface CalendarFeedOptions {\n  pastDays?: number\n  futureDays?: number\n  tags?: string\n  unmonitored?: boolean\n  [key: string]: unknown\n}\n\nexport class CalendarResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: CalendarOptions): Promise<Movie[]> {\n    const params: Record<string, unknown> = {}\n\n    if (options?.start) {\n      params.start = options.start instanceof Date ? options.start.toISOString() : options.start\n    }\n    if (options?.end) {\n      params.end = options.end instanceof Date ? options.end.toISOString() : options.end\n    }\n    if (options?.unmonitored !== undefined) {\n      params.unmonitored = options.unmonitored\n    }\n    if (options?.tags) {\n      params.tags = options.tags\n    }\n\n    return this.client.get('/api/v3/calendar', params)\n  }\n\n  async getById(id: number): Promise<Movie> {\n    return this.client.get(`/api/v3/calendar/${id}`)\n  }\n\n  /**\n   * Get calendar as iCalendar feed (.ics format)\n   * Note: Returns raw iCalendar text, not JSON\n   */\n  async getICalFeed(options?: CalendarFeedOptions): Promise<string> {\n    return this.client.getText('/feed/v3/calendar/radarr.ics', options)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { CommandResource, QualityModel, Language } from '../types.js'\n\n/**\n * File entry for the ManualImport command\n */\nexport interface RadarrManualImportFile {\n  path: string\n  folderName?: string\n  downloadId?: string\n  quality?: QualityModel\n  languages?: Language[]\n  releaseGroup?: string\n  indexerFlags?: number\n  movieId?: number\n  movieFileId?: number\n}\n\nexport type RadarrCommand =\n  | { name: 'ApplicationCheckUpdate' }\n  | { name: 'Backup' }\n  | { name: 'CleanUpRecycleBin' }\n  | { name: 'ClearBlocklist' }\n  | { name: 'ClearLog' }\n  | { name: 'Cutoff'; filterKey?: string; filterValue?: string }\n  | { name: 'DownloadedMoviesScan'; path?: string; downloadClientId?: string; importMode?: 'Auto' | 'Move' | 'Copy' }\n  | { name: 'MissingMoviesSearch'; filterKey?: string; filterValue?: string }\n  | { name: 'MoviesSearch'; movieIds: number[] }\n  | { name: 'RefreshCollections' }\n  | { name: 'RefreshMonitoredDownloads' }\n  | { name: 'RefreshMovie'; movieIds?: number[] }\n  | { name: 'RenameFiles'; movieId: number; files: number[] }\n  | { name: 'RenameMovie'; movieIds: number[] }\n  | { name: 'Rescan'; movieId?: number }\n  | { name: 'RssSync' }\n  | { name: 'ManualImport'; files: RadarrManualImportFile[]; importMode?: 'Move' | 'Copy' }\n\nexport class CommandResource_ {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<CommandResource[]> {\n    return this.client.get('/api/v3/command')\n  }\n\n  async getById(id: number): Promise<CommandResource> {\n    return this.client.get(`/api/v3/command/${id}`)\n  }\n\n  async execute(command: RadarrCommand): Promise<CommandResource> {\n    return this.client.post('/api/v3/command', command)\n  }\n\n  async cancel(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/command/${id}`)\n  }\n\n  // Convenience methods\n  async refreshMovie(movieIds?: number[]): Promise<CommandResource> {\n    return this.execute({ name: 'RefreshMovie', movieIds })\n  }\n\n  async rescan(movieId?: number): Promise<CommandResource> {\n    return this.execute({ name: 'Rescan', movieId })\n  }\n\n  async rssSync(): Promise<CommandResource> {\n    return this.execute({ name: 'RssSync' })\n  }\n\n  async moviesSearch(movieIds: number[]): Promise<CommandResource> {\n    return this.execute({ name: 'MoviesSearch', movieIds })\n  }\n\n  async missingMoviesSearch(options?: { filterKey?: string; filterValue?: string }): Promise<CommandResource> {\n    return this.execute({ name: 'MissingMoviesSearch', ...options })\n  }\n\n  async backup(): Promise<CommandResource> {\n    return this.execute({ name: 'Backup' })\n  }\n\n  async clearBlocklist(): Promise<CommandResource> {\n    return this.execute({ name: 'ClearBlocklist' })\n  }\n\n  async renameMovie(movieIds: number[]): Promise<CommandResource> {\n    return this.execute({ name: 'RenameMovie', movieIds })\n  }\n\n  async renameFiles(movieId: number, files: number[]): Promise<CommandResource> {\n    return this.execute({ name: 'RenameFiles', movieId, files })\n  }\n\n  async downloadedMoviesScan(options?: { path?: string; downloadClientId?: string; importMode?: 'Auto' | 'Move' | 'Copy' }): Promise<CommandResource> {\n    return this.execute({ name: 'DownloadedMoviesScan', ...options })\n  }\n\n  async refreshCollections(): Promise<CommandResource> {\n    return this.execute({ name: 'RefreshCollections' })\n  }\n\n  async manualImport(files: RadarrManualImportFile[], importMode?: 'Move' | 'Copy'): Promise<CommandResource> {\n    return this.execute({ name: 'ManualImport', files, importMode })\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { PaginationOptions, PaginatedResponse } from '../../core/types.js'\nimport type { Queue, QueueStatus } from '../types.js'\n\nexport interface GetQueueOptions extends PaginationOptions {\n  includeUnknownMovieItems?: boolean\n  includeMovie?: boolean\n  movieIds?: number[]\n  protocol?: 'unknown' | 'usenet' | 'torrent'\n  languages?: number[]\n  quality?: number[]\n  status?: ('unknown' | 'queued' | 'paused' | 'downloading' | 'completed' | 'failed' | 'warning' | 'delay' | 'downloadClientUnavailable' | 'fallback')[]\n}\n\nexport interface GetQueueDetailsOptions {\n  movieId?: number\n  includeMovie?: boolean\n  [key: string]: unknown\n}\n\nexport interface DeleteQueueOptions {\n  removeFromClient?: boolean\n  blocklist?: boolean\n  skipRedownload?: boolean\n  changeCategory?: boolean\n  [key: string]: unknown\n}\n\nexport class QueueResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: GetQueueOptions): Promise<PaginatedResponse<Queue>> {\n    return this.client.get('/api/v3/queue', options)\n  }\n\n  async getById(id: number): Promise<Queue> {\n    return this.client.get(`/api/v3/queue/${id}`)\n  }\n\n  async *getAll(options?: Omit<GetQueueOptions, 'page'>): AsyncGenerator<Queue, void, undefined> {\n    yield* this.client.paginate<Queue>('/api/v3/queue', options)\n  }\n\n  async getAllArray(options?: Omit<GetQueueOptions, 'page'>): Promise<Queue[]> {\n    return this.client.paginateAll<Queue>('/api/v3/queue', options)\n  }\n\n  async delete(id: number, options?: DeleteQueueOptions): Promise<void> {\n    return this.client.delete(`/api/v3/queue/${id}`, undefined, options)\n  }\n\n  async bulkDelete(ids: number[], options?: DeleteQueueOptions): Promise<void> {\n    return this.client.delete('/api/v3/queue/bulk', { ids }, options)\n  }\n\n  async getStatus(): Promise<QueueStatus> {\n    return this.client.get('/api/v3/queue/status')\n  }\n\n  async getDetails(options?: GetQueueDetailsOptions): Promise<Queue[]> {\n    return this.client.get('/api/v3/queue/details', options)\n  }\n\n  async grab(id: number): Promise<void> {\n    return this.client.post(`/api/v3/queue/grab/${id}`)\n  }\n\n  async bulkGrab(ids: number[]): Promise<void> {\n    return this.client.post('/api/v3/queue/grab/bulk', { ids })\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { PaginationOptions, PaginatedResponse } from '../../core/types.js'\nimport type { History, MovieHistoryEventType } from '../types.js'\n\n// Numeric values pinned to upstream Radarr enum\n// (src/NzbDrone.Core/History/History.cs — MovieHistoryEventType).\n// The .NET model binder rejects the string form even though the OpenAPI\n// spec declares it; numeric values are stable across releases.\nconst MOVIE_HISTORY_EVENT_TYPE_VALUES = {\n  unknown: 0,\n  grabbed: 1,\n  downloadFolderImported: 3,\n  downloadFailed: 4,\n  movieFileDeleted: 6,\n  movieFolderImported: 7,\n  movieFileRenamed: 8,\n  downloadIgnored: 9,\n} as const satisfies Record<MovieHistoryEventType, number>\n\nexport type EventTypeInput = MovieHistoryEventType | number\nexport type EventTypeFilter = EventTypeInput | EventTypeInput[]\n\nfunction encodeEventType(value: EventTypeInput): number\nfunction encodeEventType(value: EventTypeFilter): number | number[]\nfunction encodeEventType(value: EventTypeFilter | undefined): number | number[] | undefined\nfunction encodeEventType(value: EventTypeFilter | undefined): number | number[] | undefined {\n  if (value === undefined) return undefined\n  if (Array.isArray(value)) {\n    return value.map((v) => (typeof v === 'number' ? v : MOVIE_HISTORY_EVENT_TYPE_VALUES[v]))\n  }\n  return typeof value === 'number' ? value : MOVIE_HISTORY_EVENT_TYPE_VALUES[value]\n}\n\nexport interface GetHistoryOptions extends PaginationOptions {\n  includeMovie?: boolean\n  eventType?: EventTypeFilter\n  movieId?: number\n  downloadId?: string\n  movieIds?: number[]\n  languages?: number[]\n  quality?: number\n}\n\nfunction normalize(options: GetHistoryOptions | undefined) {\n  if (!options) return options\n  const { eventType, ...rest } = options\n  return eventType === undefined ? rest : { ...rest, eventType: encodeEventType(eventType) }\n}\n\nexport class HistoryResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: GetHistoryOptions): Promise<PaginatedResponse<History>> {\n    return this.client.get('/api/v3/history', normalize(options))\n  }\n\n  async *getAll(options?: Omit<GetHistoryOptions, 'page'>): AsyncGenerator<History, void, undefined> {\n    yield* this.client.paginate<History>('/api/v3/history', normalize(options))\n  }\n\n  async getAllArray(options?: Omit<GetHistoryOptions, 'page'>): Promise<History[]> {\n    return this.client.paginateAll<History>('/api/v3/history', normalize(options))\n  }\n\n  async getMovie(movieId: number, options?: { includeMovie?: boolean }): Promise<History[]> {\n    return this.client.get('/api/v3/history/movie', { movieId, ...options })\n  }\n\n  async getSince(date: Date | string, options?: { eventType?: EventTypeInput; includeMovie?: boolean }): Promise<History[]> {\n    const dateStr = date instanceof Date ? date.toISOString() : date\n    const { eventType, ...rest } = options ?? {}\n    return this.client.get('/api/v3/history/since', {\n      date: dateStr,\n      ...rest,\n      ...(eventType !== undefined && { eventType: encodeEventType(eventType) }),\n    })\n  }\n\n  async markAsFailed(id: number): Promise<void> {\n    return this.client.post('/api/v3/history/failed', undefined, { id })\n  }\n\n  async markAsFailedByHistoryId(historyId: number): Promise<void> {\n    return this.client.post(`/api/v3/history/failed/${historyId}`)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { QualityProfile, QualityDefinition, QualityDefinitionLimits } from '../types.js'\n\nexport class QualityProfileResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<QualityProfile[]> {\n    return this.client.get('/api/v3/qualityprofile')\n  }\n\n  async getById(id: number): Promise<QualityProfile> {\n    return this.client.get(`/api/v3/qualityprofile/${id}`)\n  }\n\n  async create(profile: Omit<QualityProfile, 'id'>): Promise<QualityProfile> {\n    return this.client.post('/api/v3/qualityprofile', profile)\n  }\n\n  async update(id: number, profile: Partial<QualityProfile> & { id: number }): Promise<QualityProfile> {\n    return this.client.put(`/api/v3/qualityprofile/${id}`, profile)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/qualityprofile/${id}`)\n  }\n\n  async getSchema(): Promise<QualityProfile> {\n    return this.client.get('/api/v3/qualityprofile/schema')\n  }\n}\n\nexport class QualityDefinitionResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<QualityDefinition[]> {\n    return this.client.get('/api/v3/qualitydefinition')\n  }\n\n  async getById(id: number): Promise<QualityDefinition> {\n    return this.client.get(`/api/v3/qualitydefinition/${id}`)\n  }\n\n  async update(id: number, definition: Partial<QualityDefinition> & { id: number }): Promise<QualityDefinition> {\n    return this.client.put(`/api/v3/qualitydefinition/${id}`, definition)\n  }\n\n  async updateAll(definitions: QualityDefinition[]): Promise<QualityDefinition[]> {\n    return this.client.put('/api/v3/qualitydefinition/update', definitions)\n  }\n\n  async getLimits(): Promise<QualityDefinitionLimits> {\n    return this.client.get('/api/v3/qualitydefinition/limits')\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { CustomFormat, CustomFormatBulk } from '../types.js'\n\nexport class CustomFormatResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<CustomFormat[]> {\n    return this.client.get('/api/v3/customformat')\n  }\n\n  async getById(id: number): Promise<CustomFormat> {\n    return this.client.get(`/api/v3/customformat/${id}`)\n  }\n\n  async create(format: Omit<CustomFormat, 'id'>): Promise<CustomFormat> {\n    return this.client.post('/api/v3/customformat', format)\n  }\n\n  async update(id: number, format: Partial<CustomFormat> & { id: number }): Promise<CustomFormat> {\n    return this.client.put(`/api/v3/customformat/${id}`, format)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/customformat/${id}`)\n  }\n\n  async bulkDelete(ids: number[]): Promise<void> {\n    return this.client.delete('/api/v3/customformat/bulk', { ids })\n  }\n\n  async bulkUpdate(formats: CustomFormatBulk): Promise<CustomFormat[]> {\n    return this.client.put('/api/v3/customformat/bulk', formats)\n  }\n\n  async getSchema(): Promise<CustomFormat[]> {\n    return this.client.get('/api/v3/customformat/schema')\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { DownloadClient, DownloadClientBulk, DownloadClientConfig } from '../types.js'\n\nexport class DownloadClientResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<DownloadClient[]> {\n    return this.client.get('/api/v3/downloadclient')\n  }\n\n  async getById(id: number): Promise<DownloadClient> {\n    return this.client.get(`/api/v3/downloadclient/${id}`)\n  }\n\n  async create(client: Omit<DownloadClient, 'id'>): Promise<DownloadClient> {\n    return this.client.post('/api/v3/downloadclient', client)\n  }\n\n  async update(id: number, client: Partial<DownloadClient> & { id: number }, forceSave?: boolean): Promise<DownloadClient> {\n    return this.client.put(`/api/v3/downloadclient/${id}`, client, forceSave !== undefined ? { forceSave } : undefined)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/downloadclient/${id}`)\n  }\n\n  async bulkUpdate(clients: DownloadClientBulk): Promise<DownloadClient[]> {\n    return this.client.put('/api/v3/downloadclient/bulk', clients)\n  }\n\n  async bulkDelete(ids: number[]): Promise<void> {\n    return this.client.delete('/api/v3/downloadclient/bulk', { ids })\n  }\n\n  async getSchema(): Promise<DownloadClient[]> {\n    return this.client.get('/api/v3/downloadclient/schema')\n  }\n\n  async test(client: Partial<DownloadClient>): Promise<void> {\n    return this.client.post('/api/v3/downloadclient/test', client)\n  }\n\n  async testAll(): Promise<void> {\n    return this.client.post('/api/v3/downloadclient/testall')\n  }\n}\n\nexport class DownloadClientConfigResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<DownloadClientConfig> {\n    return this.client.get('/api/v3/config/downloadclient')\n  }\n\n  async update(config: Partial<DownloadClientConfig> & { id: number }): Promise<DownloadClientConfig> {\n    return this.client.put(`/api/v3/config/downloadclient/${config.id}`, config)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Indexer, IndexerBulk, IndexerConfig, IndexerFlag } from '../types.js'\n\nexport class IndexerResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Indexer[]> {\n    return this.client.get('/api/v3/indexer')\n  }\n\n  async getById(id: number): Promise<Indexer> {\n    return this.client.get(`/api/v3/indexer/${id}`)\n  }\n\n  async create(indexer: Omit<Indexer, 'id'>): Promise<Indexer> {\n    return this.client.post('/api/v3/indexer', indexer)\n  }\n\n  async update(id: number, indexer: Partial<Indexer> & { id: number }, forceSave?: boolean): Promise<Indexer> {\n    return this.client.put(`/api/v3/indexer/${id}`, indexer, forceSave !== undefined ? { forceSave } : undefined)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/indexer/${id}`)\n  }\n\n  async bulkUpdate(indexers: IndexerBulk): Promise<Indexer[]> {\n    return this.client.put('/api/v3/indexer/bulk', indexers)\n  }\n\n  async bulkDelete(ids: number[]): Promise<void> {\n    return this.client.delete('/api/v3/indexer/bulk', { ids })\n  }\n\n  async getSchema(): Promise<Indexer[]> {\n    return this.client.get('/api/v3/indexer/schema')\n  }\n\n  async test(indexer: Partial<Indexer>): Promise<void> {\n    return this.client.post('/api/v3/indexer/test', indexer)\n  }\n\n  async testAll(): Promise<void> {\n    return this.client.post('/api/v3/indexer/testall')\n  }\n}\n\nexport class IndexerConfigResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<IndexerConfig> {\n    return this.client.get('/api/v3/config/indexer')\n  }\n\n  async update(config: Partial<IndexerConfig> & { id: number }): Promise<IndexerConfig> {\n    return this.client.put(`/api/v3/config/indexer/${config.id}`, config)\n  }\n}\n\nexport class IndexerFlagResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<IndexerFlag[]> {\n    return this.client.get('/api/v3/indexerflag')\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Tag, TagDetails } from '../types.js'\n\nexport class TagResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Tag[]> {\n    return this.client.get('/api/v3/tag')\n  }\n\n  async getById(id: number): Promise<Tag> {\n    return this.client.get(`/api/v3/tag/${id}`)\n  }\n\n  async create(tag: Omit<Tag, 'id'>): Promise<Tag> {\n    return this.client.post('/api/v3/tag', tag)\n  }\n\n  async update(id: number, tag: Partial<Tag> & { id: number }): Promise<Tag> {\n    return this.client.put(`/api/v3/tag/${id}`, tag)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/tag/${id}`)\n  }\n}\n\nexport class TagDetailsResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<TagDetails[]> {\n    return this.client.get('/api/v3/tag/detail')\n  }\n\n  async getById(id: number): Promise<TagDetails> {\n    return this.client.get(`/api/v3/tag/detail/${id}`)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { RootFolder } from '../types.js'\n\nexport class RootFolderResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<RootFolder[]> {\n    return this.client.get('/api/v3/rootfolder')\n  }\n\n  async getById(id: number): Promise<RootFolder> {\n    return this.client.get(`/api/v3/rootfolder/${id}`)\n  }\n\n  async create(folder: Omit<RootFolder, 'id'>): Promise<RootFolder> {\n    return this.client.post('/api/v3/rootfolder', folder)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/rootfolder/${id}`)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { SystemResource, Health, DiskSpace, Task, Backup, Log, LogFile, Update } from '../types.js'\nimport type { PaginationOptions, PaginatedResponse } from '../../core/types.js'\nimport { validateFilename } from '../../core/utils.js'\n\nexport class SystemInfoResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<SystemResource> {\n    return this.client.get('/api/v3/system/status')\n  }\n\n  async getRoutes(): Promise<unknown[]> {\n    return this.client.get('/api/v3/system/routes')\n  }\n\n  async getDuplicateRoutes(): Promise<unknown[]> {\n    return this.client.get('/api/v3/system/routes/duplicate')\n  }\n\n  async restart(): Promise<void> {\n    return this.client.post('/api/v3/system/restart')\n  }\n\n  async shutdown(): Promise<void> {\n    return this.client.post('/api/v3/system/shutdown')\n  }\n\n  /**\n   * Simple health check - returns \"Pong\"\n   */\n  async ping(): Promise<string> {\n    return this.client.get('/ping')\n  }\n}\n\nexport class HealthResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Health[]> {\n    return this.client.get('/api/v3/health')\n  }\n}\n\nexport class DiskSpaceResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<DiskSpace[]> {\n    return this.client.get('/api/v3/diskspace')\n  }\n}\n\nexport class TaskResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Task[]> {\n    return this.client.get('/api/v3/system/task')\n  }\n\n  async getById(id: number): Promise<Task> {\n    return this.client.get(`/api/v3/system/task/${id}`)\n  }\n}\n\nexport class BackupResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Backup[]> {\n    return this.client.get('/api/v3/system/backup')\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/system/backup/${id}`)\n  }\n\n  async restore(id: number): Promise<void> {\n    return this.client.post(`/api/v3/system/backup/restore/${id}`)\n  }\n\n  async restoreUpload(formData: FormData): Promise<void> {\n    return this.client.postForm('/api/v3/system/backup/restore/upload', formData)\n  }\n}\n\nexport class LogResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: PaginationOptions): Promise<PaginatedResponse<Log>> {\n    return this.client.get('/api/v3/log', options)\n  }\n\n  async *getAll(options?: Omit<PaginationOptions, 'page'>): AsyncGenerator<Log, void, undefined> {\n    yield* this.client.paginate<Log>('/api/v3/log', options)\n  }\n\n  async getAllArray(options?: Omit<PaginationOptions, 'page'>): Promise<Log[]> {\n    return this.client.paginateAll<Log>('/api/v3/log', options)\n  }\n}\n\nexport class LogFileResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<LogFile[]> {\n    return this.client.get('/api/v3/log/file')\n  }\n\n  async getUpdate(): Promise<LogFile[]> {\n    return this.client.get('/api/v3/log/file/update')\n  }\n\n  /**\n   * Download a specific log file's contents\n   */\n  async download(filename: string): Promise<string> {\n    validateFilename(filename)\n    const sanitized = encodeURIComponent(filename)\n    return this.client.getText(`/api/v3/log/file/${sanitized}`)\n  }\n\n  /**\n   * Download a specific update log file's contents\n   */\n  async downloadUpdate(filename: string): Promise<string> {\n    validateFilename(filename)\n    const sanitized = encodeURIComponent(filename)\n    return this.client.getText(`/api/v3/log/file/update/${sanitized}`)\n  }\n}\n\nexport class UpdateResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Update[]> {\n    return this.client.get('/api/v3/update')\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Release } from '../types.js'\n\nexport interface SearchReleasesOptions {\n  movieId?: number\n  [key: string]: unknown\n}\n\nexport class ReleaseResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: SearchReleasesOptions): Promise<Release[]> {\n    return this.client.get('/api/v3/release', options)\n  }\n\n  async getById(id: number): Promise<Release> {\n    return this.client.get(`/api/v3/release/${id}`)\n  }\n\n  async download(release: { guid: string; indexerId: number }): Promise<Release> {\n    return this.client.post('/api/v3/release', release)\n  }\n\n  async push(release: Release): Promise<Release[]> {\n    return this.client.post('/api/v3/release/push', release)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { ImportList, ImportListBulk, ImportListConfig, ImportExclusion, ImportExclusionBulk } from '../types.js'\nimport type { PaginationOptions, PaginatedResponse } from '../../core/types.js'\n\nexport class ImportListResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<ImportList[]> {\n    return this.client.get('/api/v3/importlist')\n  }\n\n  async getById(id: number): Promise<ImportList> {\n    return this.client.get(`/api/v3/importlist/${id}`)\n  }\n\n  async create(list: Omit<ImportList, 'id'>): Promise<ImportList> {\n    return this.client.post('/api/v3/importlist', list)\n  }\n\n  async update(id: number, list: Partial<ImportList> & { id: number }, forceSave?: boolean): Promise<ImportList> {\n    return this.client.put(`/api/v3/importlist/${id}`, list, forceSave !== undefined ? { forceSave } : undefined)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/importlist/${id}`)\n  }\n\n  async bulkUpdate(lists: ImportListBulk): Promise<ImportList[]> {\n    return this.client.put('/api/v3/importlist/bulk', lists)\n  }\n\n  async bulkDelete(ids: number[]): Promise<void> {\n    return this.client.delete('/api/v3/importlist/bulk', { ids })\n  }\n\n  async getSchema(): Promise<ImportList[]> {\n    return this.client.get('/api/v3/importlist/schema')\n  }\n\n  async test(list: Partial<ImportList>): Promise<void> {\n    return this.client.post('/api/v3/importlist/test', list)\n  }\n\n  async testAll(): Promise<void> {\n    return this.client.post('/api/v3/importlist/testall')\n  }\n}\n\nexport class ImportListConfigResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<ImportListConfig> {\n    return this.client.get('/api/v3/config/importlist')\n  }\n\n  async update(config: Partial<ImportListConfig> & { id: number }): Promise<ImportListConfig> {\n    return this.client.put(`/api/v3/config/importlist/${config.id}`, config)\n  }\n}\n\nexport class ImportExclusionResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: PaginationOptions): Promise<PaginatedResponse<ImportExclusion>> {\n    return this.client.get('/api/v3/exclusions/paged', options)\n  }\n\n  async getAll(): Promise<ImportExclusion[]> {\n    return this.client.get('/api/v3/exclusions')\n  }\n\n  async getById(id: number): Promise<ImportExclusion> {\n    return this.client.get(`/api/v3/exclusions/${id}`)\n  }\n\n  async create(exclusion: Omit<ImportExclusion, 'id'>): Promise<ImportExclusion> {\n    return this.client.post('/api/v3/exclusions', exclusion)\n  }\n\n  async update(id: number, exclusion: Partial<ImportExclusion> & { id: number }): Promise<ImportExclusion> {\n    return this.client.put(`/api/v3/exclusions/${id}`, exclusion)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/exclusions/${id}`)\n  }\n\n  async bulkCreate(exclusions: ImportExclusion[]): Promise<ImportExclusion[]> {\n    return this.client.post('/api/v3/exclusions/bulk', exclusions)\n  }\n\n  async bulkDelete(exclusions: ImportExclusionBulk): Promise<void> {\n    return this.client.delete('/api/v3/exclusions/bulk', exclusions)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Notification } from '../types.js'\n\nexport class NotificationResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Notification[]> {\n    return this.client.get('/api/v3/notification')\n  }\n\n  async getById(id: number): Promise<Notification> {\n    return this.client.get(`/api/v3/notification/${id}`)\n  }\n\n  async create(notification: Omit<Notification, 'id'>): Promise<Notification> {\n    return this.client.post('/api/v3/notification', notification)\n  }\n\n  async update(id: number, notification: Partial<Notification> & { id: number }, forceSave?: boolean): Promise<Notification> {\n    return this.client.put(`/api/v3/notification/${id}`, notification, forceSave !== undefined ? { forceSave } : undefined)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/notification/${id}`)\n  }\n\n  async getSchema(): Promise<Notification[]> {\n    return this.client.get('/api/v3/notification/schema')\n  }\n\n  async test(notification: Partial<Notification>): Promise<void> {\n    return this.client.post('/api/v3/notification/test', notification)\n  }\n\n  async testAll(): Promise<void> {\n    return this.client.post('/api/v3/notification/testall')\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Metadata } from '../types.js'\n\nexport class MetadataResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Metadata[]> {\n    return this.client.get('/api/v3/metadata')\n  }\n\n  async getById(id: number): Promise<Metadata> {\n    return this.client.get(`/api/v3/metadata/${id}`)\n  }\n\n  async create(metadata: Omit<Metadata, 'id'>): Promise<Metadata> {\n    return this.client.post('/api/v3/metadata', metadata)\n  }\n\n  async update(id: number, metadata: Partial<Metadata> & { id: number }, forceSave?: boolean): Promise<Metadata> {\n    return this.client.put(`/api/v3/metadata/${id}`, metadata, forceSave !== undefined ? { forceSave } : undefined)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/metadata/${id}`)\n  }\n\n  async getSchema(): Promise<Metadata[]> {\n    return this.client.get('/api/v3/metadata/schema')\n  }\n\n  async test(metadata: Partial<Metadata>): Promise<void> {\n    return this.client.post('/api/v3/metadata/test', metadata)\n  }\n\n  async testAll(): Promise<void> {\n    return this.client.post('/api/v3/metadata/testall')\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { PaginationOptions, PaginatedResponse } from '../../core/types.js'\nimport type { Blocklist } from '../types.js'\n\nexport interface GetBlocklistOptions extends PaginationOptions {\n  movieIds?: number[]\n}\n\nexport class BlocklistResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: GetBlocklistOptions): Promise<PaginatedResponse<Blocklist>> {\n    return this.client.get('/api/v3/blocklist', options)\n  }\n\n  async *getAll(options?: Omit<GetBlocklistOptions, 'page'>): AsyncGenerator<Blocklist, void, undefined> {\n    yield* this.client.paginate<Blocklist>('/api/v3/blocklist', options)\n  }\n\n  async getAllArray(options?: Omit<GetBlocklistOptions, 'page'>): Promise<Blocklist[]> {\n    return this.client.paginateAll<Blocklist>('/api/v3/blocklist', options)\n  }\n\n  async getMovie(movieId: number): Promise<Blocklist[]> {\n    return this.client.get('/api/v3/blocklist/movie', { movieId })\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/blocklist/${id}`)\n  }\n\n  async bulkDelete(ids: number[]): Promise<void> {\n    return this.client.delete('/api/v3/blocklist/bulk', { ids })\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { ManualImport, ManualImportReprocess } from '../types.js'\n\nexport interface GetManualImportOptions {\n  folder?: string\n  downloadId?: string\n  movieId?: number\n  filterExistingFiles?: boolean\n  [key: string]: unknown\n}\n\nexport class ManualImportResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: GetManualImportOptions): Promise<ManualImport[]> {\n    return this.client.get('/api/v3/manualimport', options)\n  }\n\n  async process(imports: ManualImportReprocess[]): Promise<void> {\n    return this.client.post('/api/v3/manualimport', imports)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Parse } from '../types.js'\n\nexport class ParseResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(title: string): Promise<Parse> {\n    return this.client.get('/api/v3/parse', { title })\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { HostConfig, UiConfig, NamingConfig, MediaManagementConfig } from '../types.js'\n\nexport class HostConfigResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<HostConfig> {\n    return this.client.get('/api/v3/config/host')\n  }\n\n  async update(config: Partial<HostConfig> & { id: number }): Promise<HostConfig> {\n    return this.client.put(`/api/v3/config/host/${config.id}`, config)\n  }\n}\n\nexport class UiConfigResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<UiConfig> {\n    return this.client.get('/api/v3/config/ui')\n  }\n\n  async update(config: Partial<UiConfig> & { id: number }): Promise<UiConfig> {\n    return this.client.put(`/api/v3/config/ui/${config.id}`, config)\n  }\n}\n\nexport class NamingConfigResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<NamingConfig> {\n    return this.client.get('/api/v3/config/naming')\n  }\n\n  async update(config: Partial<NamingConfig> & { id: number }): Promise<NamingConfig> {\n    return this.client.put(`/api/v3/config/naming/${config.id}`, config)\n  }\n\n  async getExamples(options?: { id?: number; renameMovies?: boolean; replaceIllegalCharacters?: boolean; colonReplacementFormat?: number; standardMovieFormat?: string; movieFolderFormat?: string }): Promise<unknown> {\n    return this.client.get('/api/v3/config/naming/examples', options)\n  }\n}\n\nexport class MediaManagementConfigResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<MediaManagementConfig> {\n    return this.client.get('/api/v3/config/mediamanagement')\n  }\n\n  async update(config: Partial<MediaManagementConfig> & { id: number }): Promise<MediaManagementConfig> {\n    return this.client.put(`/api/v3/config/mediamanagement/${config.id}`, config)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { DelayProfile } from '../types.js'\n\nexport class DelayProfileResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<DelayProfile[]> {\n    return this.client.get('/api/v3/delayprofile')\n  }\n\n  async getById(id: number): Promise<DelayProfile> {\n    return this.client.get(`/api/v3/delayprofile/${id}`)\n  }\n\n  async create(profile: Omit<DelayProfile, 'id'>): Promise<DelayProfile> {\n    return this.client.post('/api/v3/delayprofile', profile)\n  }\n\n  async update(id: number, profile: Partial<DelayProfile> & { id: number }): Promise<DelayProfile> {\n    return this.client.put(`/api/v3/delayprofile/${id}`, profile)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/delayprofile/${id}`)\n  }\n\n  async reorder(id: number, afterId?: number): Promise<DelayProfile[]> {\n    return this.client.put(`/api/v3/delayprofile/reorder/${id}`, undefined, afterId !== undefined ? { after: afterId } : undefined)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { RemotePathMapping } from '../types.js'\n\nexport class RemotePathMappingResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<RemotePathMapping[]> {\n    return this.client.get('/api/v3/remotepathmapping')\n  }\n\n  async getById(id: number): Promise<RemotePathMapping> {\n    return this.client.get(`/api/v3/remotepathmapping/${id}`)\n  }\n\n  async create(mapping: Omit<RemotePathMapping, 'id'>): Promise<RemotePathMapping> {\n    return this.client.post('/api/v3/remotepathmapping', mapping)\n  }\n\n  async update(id: number, mapping: Partial<RemotePathMapping> & { id: number }): Promise<RemotePathMapping> {\n    return this.client.put(`/api/v3/remotepathmapping/${id}`, mapping)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/remotepathmapping/${id}`)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { AutoTagging } from '../types.js'\n\nexport class AutoTaggingResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<AutoTagging[]> {\n    return this.client.get('/api/v3/autotagging')\n  }\n\n  async getById(id: number): Promise<AutoTagging> {\n    return this.client.get(`/api/v3/autotagging/${id}`)\n  }\n\n  async create(autoTagging: Omit<AutoTagging, 'id'>): Promise<AutoTagging> {\n    return this.client.post('/api/v3/autotagging', autoTagging)\n  }\n\n  async update(id: number, autoTagging: Partial<AutoTagging> & { id: number }): Promise<AutoTagging> {\n    return this.client.put(`/api/v3/autotagging/${id}`, autoTagging)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/autotagging/${id}`)\n  }\n\n  async getSchema(): Promise<AutoTagging> {\n    return this.client.get('/api/v3/autotagging/schema')\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Collection, CollectionUpdate } from '../types.js'\n\nexport class CollectionResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(options?: { tmdbId?: number }): Promise<Collection[]> {\n    return this.client.get('/api/v3/collection', options)\n  }\n\n  async getById(id: number): Promise<Collection> {\n    return this.client.get(`/api/v3/collection/${id}`)\n  }\n\n  async update(id: number, collection: Partial<Collection> & { id: number }): Promise<Collection> {\n    return this.client.put(`/api/v3/collection/${id}`, collection)\n  }\n\n  async bulkUpdate(update: CollectionUpdate): Promise<Collection[]> {\n    return this.client.put('/api/v3/collection', update)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Credit } from '../types.js'\n\nexport class CreditResource {\n  constructor(private client: ClientMethods) {}\n\n  async getByMovie(movieId: number, options?: { movieMetadataId?: number }): Promise<Credit[]> {\n    return this.client.get('/api/v3/credit', { movieId, ...options })\n  }\n\n  async getById(id: number): Promise<Credit> {\n    return this.client.get(`/api/v3/credit/${id}`)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { ExtraFile } from '../types.js'\n\nexport class ExtraFileResource {\n  constructor(private client: ClientMethods) {}\n\n  async getByMovie(movieId: number): Promise<ExtraFile[]> {\n    return this.client.get('/api/v3/extrafile', { movieId })\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { RenameMovie } from '../types.js'\n\nexport class RenameResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(movieId: number): Promise<RenameMovie[]> {\n    return this.client.get('/api/v3/rename', { movieId })\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { LanguageResource } from '../types.js'\n\nexport class LanguageResourceApi {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<LanguageResource[]> {\n    return this.client.get('/api/v3/language')\n  }\n\n  async getById(id: number): Promise<LanguageResource> {\n    return this.client.get(`/api/v3/language/${id}`)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { LocalizationLanguage } from '../types.js'\n\nexport class LocalizationResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<string> {\n    return this.client.get('/api/v3/localization')\n  }\n\n  async getLanguages(): Promise<LocalizationLanguage[]> {\n    return this.client.get('/api/v3/localization/language')\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { CustomFilter } from '../types.js'\n\nexport class CustomFilterResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<CustomFilter[]> {\n    return this.client.get('/api/v3/customfilter')\n  }\n\n  async getById(id: number): Promise<CustomFilter> {\n    return this.client.get(`/api/v3/customfilter/${id}`)\n  }\n\n  async create(filter: Omit<CustomFilter, 'id'>): Promise<CustomFilter> {\n    return this.client.post('/api/v3/customfilter', filter)\n  }\n\n  async update(id: number, filter: Partial<CustomFilter> & { id: number }): Promise<CustomFilter> {\n    return this.client.put(`/api/v3/customfilter/${id}`, filter)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v3/customfilter/${id}`)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { PaginationOptions, PaginatedResponse } from '../../core/types.js'\nimport type { Movie } from '../types.js'\n\nexport interface GetWantedOptions extends PaginationOptions {\n  includeImages?: boolean\n  monitored?: boolean\n}\n\nexport class WantedResource {\n  constructor(private client: ClientMethods) {}\n\n  /**\n   * Get movies that don't meet quality cutoff\n   */\n  async cutoff(options?: GetWantedOptions): Promise<PaginatedResponse<Movie>> {\n    return this.client.get('/api/v3/wanted/cutoff', options)\n  }\n\n  /**\n   * Get all movies not meeting quality cutoff (async generator)\n   */\n  async *cutoffAll(options?: Omit<GetWantedOptions, 'page'>): AsyncGenerator<Movie, void, undefined> {\n    yield* this.client.paginate<Movie>('/api/v3/wanted/cutoff', options)\n  }\n\n  /**\n   * Get all movies not meeting quality cutoff as array\n   */\n  async cutoffAllArray(options?: Omit<GetWantedOptions, 'page'>): Promise<Movie[]> {\n    return this.client.paginateAll<Movie>('/api/v3/wanted/cutoff', options)\n  }\n\n  /**\n   * Get missing movies\n   */\n  async missing(options?: GetWantedOptions): Promise<PaginatedResponse<Movie>> {\n    return this.client.get('/api/v3/wanted/missing', options)\n  }\n\n  /**\n   * Get all missing movies (async generator)\n   */\n  async *missingAll(options?: Omit<GetWantedOptions, 'page'>): AsyncGenerator<Movie, void, undefined> {\n    yield* this.client.paginate<Movie>('/api/v3/wanted/missing', options)\n  }\n\n  /**\n   * Get all missing movies as array\n   */\n  async missingAllArray(options?: Omit<GetWantedOptions, 'page'>): Promise<Movie[]> {\n    return this.client.paginateAll<Movie>('/api/v3/wanted/missing', options)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\n\nexport interface FileSystemEntry {\n  type: 'file' | 'folder' | 'drive'\n  name: string\n  path: string\n  size?: number\n  lastModified?: string\n}\n\nexport interface GetFileSystemOptions {\n  path: string\n  includeFiles?: boolean\n  allowFoldersWithoutTrailingSlashes?: boolean\n  [key: string]: unknown\n}\n\nexport class FileSystemResource {\n  constructor(private client: ClientMethods) {}\n\n  /**\n   * Browse the filesystem at the given path\n   */\n  async get(options: GetFileSystemOptions): Promise<FileSystemEntry[]> {\n    return this.client.get('/api/v3/filesystem', options)\n  }\n\n  /**\n   * Get the type of a path (file, folder, etc.)\n   */\n  async getType(path: string): Promise<{ type: string }> {\n    return this.client.get('/api/v3/filesystem/type', { path })\n  }\n\n  /**\n   * Get media files in a directory\n   */\n  async getMediaFiles(path: string): Promise<FileSystemEntry[]> {\n    return this.client.get('/api/v3/filesystem/mediafiles', { path })\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { MediaCoverTypes } from '../types.js'\n\nexport class MediaCoverResource {\n  constructor(private client: ClientMethods) {}\n\n  /**\n   * Get a media cover image as binary data\n   * @param movieId The movie ID\n   * @param filename The cover filename (e.g., \"poster.jpg\", \"fanart.jpg\")\n   * @returns ArrayBuffer containing the image data\n   */\n  async get(movieId: number, filename: string): Promise<ArrayBuffer> {\n    return this.client.getBuffer(`/api/v3/mediacover/${movieId}/${filename}`)\n  }\n\n  /**\n   * Get a poster image for a movie\n   */\n  async getPoster(movieId: number): Promise<ArrayBuffer> {\n    return this.get(movieId, 'poster.jpg')\n  }\n\n  /**\n   * Get a fanart image for a movie\n   */\n  async getFanart(movieId: number): Promise<ArrayBuffer> {\n    return this.get(movieId, 'fanart.jpg')\n  }\n\n  /**\n   * Get a cover image by type\n   * @param movieId The movie ID\n   * @param coverType The type of cover to retrieve\n   */\n  async getByType(movieId: number, coverType: MediaCoverTypes): Promise<ArrayBuffer> {\n    return this.get(movieId, `${coverType}.jpg`)\n  }\n}\n","import { BaseClient, type ClientConfig } from '../core/index.js'\nimport { MovieResource } from './resources/movie.js'\nimport { MovieFileResource } from './resources/movieFile.js'\nimport { CalendarResource } from './resources/calendar.js'\nimport { CommandResource_ } from './resources/command.js'\nimport { QueueResource } from './resources/queue.js'\nimport { HistoryResource } from './resources/history.js'\nimport { QualityProfileResource, QualityDefinitionResource } from './resources/qualityProfile.js'\nimport { CustomFormatResource } from './resources/customFormat.js'\nimport { DownloadClientResource, DownloadClientConfigResource } from './resources/downloadClient.js'\nimport { IndexerResource, IndexerConfigResource, IndexerFlagResource } from './resources/indexer.js'\nimport { TagResource, TagDetailsResource } from './resources/tag.js'\nimport { RootFolderResource } from './resources/rootFolder.js'\nimport { SystemInfoResource, HealthResource, DiskSpaceResource, TaskResource, BackupResource, LogResource, LogFileResource, UpdateResource } from './resources/system.js'\nimport { ReleaseResource } from './resources/release.js'\nimport { ImportListResource, ImportListConfigResource, ImportExclusionResource } from './resources/importList.js'\nimport { NotificationResource } from './resources/notification.js'\nimport { MetadataResource } from './resources/metadata.js'\nimport { BlocklistResource } from './resources/blocklist.js'\nimport { ManualImportResource } from './resources/manualImport.js'\nimport { ParseResource } from './resources/parse.js'\nimport { HostConfigResource, UiConfigResource, NamingConfigResource, MediaManagementConfigResource } from './resources/config.js'\nimport { DelayProfileResource } from './resources/delayProfile.js'\nimport { RemotePathMappingResource } from './resources/remotePathMapping.js'\nimport { AutoTaggingResource } from './resources/autoTagging.js'\nimport { CollectionResource } from './resources/collection.js'\nimport { CreditResource } from './resources/credit.js'\nimport { ExtraFileResource } from './resources/extraFile.js'\nimport { RenameResource } from './resources/rename.js'\nimport { LanguageResourceApi } from './resources/language.js'\nimport { LocalizationResource } from './resources/localization.js'\nimport { CustomFilterResource } from './resources/customFilter.js'\nimport { WantedResource } from './resources/wanted.js'\nimport { FileSystemResource } from './resources/filesystem.js'\nimport { MediaCoverResource } from './resources/mediaCover.js'\n\nexport class RadarrClient extends BaseClient {\n  public readonly movie: MovieResource\n  public readonly movieFile: MovieFileResource\n  public readonly calendar: CalendarResource\n  public readonly command: CommandResource_\n  public readonly queue: QueueResource\n  public readonly history: HistoryResource\n  public readonly qualityProfile: QualityProfileResource\n  public readonly qualityDefinition: QualityDefinitionResource\n  public readonly customFormat: CustomFormatResource\n  public readonly downloadClient: DownloadClientResource\n  public readonly downloadClientConfig: DownloadClientConfigResource\n  public readonly indexer: IndexerResource\n  public readonly indexerConfig: IndexerConfigResource\n  public readonly indexerFlag: IndexerFlagResource\n  public readonly tag: TagResource\n  public readonly tagDetails: TagDetailsResource\n  public readonly rootFolder: RootFolderResource\n  public readonly system: SystemInfoResource\n  public readonly health: HealthResource\n  public readonly diskSpace: DiskSpaceResource\n  public readonly task: TaskResource\n  public readonly backup: BackupResource\n  public readonly log: LogResource\n  public readonly logFile: LogFileResource\n  public readonly update: UpdateResource\n  public readonly release: ReleaseResource\n  public readonly importList: ImportListResource\n  public readonly importListConfig: ImportListConfigResource\n  public readonly importExclusion: ImportExclusionResource\n  public readonly notification: NotificationResource\n  public readonly metadata: MetadataResource\n  public readonly blocklist: BlocklistResource\n  public readonly manualImport: ManualImportResource\n  public readonly parse: ParseResource\n  public readonly hostConfig: HostConfigResource\n  public readonly uiConfig: UiConfigResource\n  public readonly namingConfig: NamingConfigResource\n  public readonly mediaManagementConfig: MediaManagementConfigResource\n  public readonly delayProfile: DelayProfileResource\n  public readonly remotePathMapping: RemotePathMappingResource\n  public readonly autoTagging: AutoTaggingResource\n  public readonly collection: CollectionResource\n  public readonly credit: CreditResource\n  public readonly extraFile: ExtraFileResource\n  public readonly rename: RenameResource\n  public readonly language: LanguageResourceApi\n  public readonly localization: LocalizationResource\n  public readonly customFilter: CustomFilterResource\n  public readonly wanted: WantedResource\n  public readonly filesystem: FileSystemResource\n  public readonly mediaCover: MediaCoverResource\n\n  constructor(config: ClientConfig) {\n    super(config)\n\n    this.movie = new MovieResource(this)\n    this.movieFile = new MovieFileResource(this)\n    this.calendar = new CalendarResource(this)\n    this.command = new CommandResource_(this)\n    this.queue = new QueueResource(this)\n    this.history = new HistoryResource(this)\n    this.qualityProfile = new QualityProfileResource(this)\n    this.qualityDefinition = new QualityDefinitionResource(this)\n    this.customFormat = new CustomFormatResource(this)\n    this.downloadClient = new DownloadClientResource(this)\n    this.downloadClientConfig = new DownloadClientConfigResource(this)\n    this.indexer = new IndexerResource(this)\n    this.indexerConfig = new IndexerConfigResource(this)\n    this.indexerFlag = new IndexerFlagResource(this)\n    this.tag = new TagResource(this)\n    this.tagDetails = new TagDetailsResource(this)\n    this.rootFolder = new RootFolderResource(this)\n    this.system = new SystemInfoResource(this)\n    this.health = new HealthResource(this)\n    this.diskSpace = new DiskSpaceResource(this)\n    this.task = new TaskResource(this)\n    this.backup = new BackupResource(this)\n    this.log = new LogResource(this)\n    this.logFile = new LogFileResource(this)\n    this.update = new UpdateResource(this)\n    this.release = new ReleaseResource(this)\n    this.importList = new ImportListResource(this)\n    this.importListConfig = new ImportListConfigResource(this)\n    this.importExclusion = new ImportExclusionResource(this)\n    this.notification = new NotificationResource(this)\n    this.metadata = new MetadataResource(this)\n    this.blocklist = new BlocklistResource(this)\n    this.manualImport = new ManualImportResource(this)\n    this.parse = new ParseResource(this)\n    this.hostConfig = new HostConfigResource(this)\n    this.uiConfig = new UiConfigResource(this)\n    this.namingConfig = new NamingConfigResource(this)\n    this.mediaManagementConfig = new MediaManagementConfigResource(this)\n    this.delayProfile = new DelayProfileResource(this)\n    this.remotePathMapping = new RemotePathMappingResource(this)\n    this.autoTagging = new AutoTaggingResource(this)\n    this.collection = new CollectionResource(this)\n    this.credit = new CreditResource(this)\n    this.extraFile = new ExtraFileResource(this)\n    this.rename = new RenameResource(this)\n    this.language = new LanguageResourceApi(this)\n    this.localization = new LocalizationResource(this)\n    this.customFilter = new CustomFilterResource(this)\n    this.wanted = new WantedResource(this)\n    this.filesystem = new FileSystemResource(this)\n    this.mediaCover = new MediaCoverResource(this)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Indexer, IndexerBulk, IndexerStats, IndexerStatus } from '../types.js'\n\nexport class IndexerResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Indexer[]> {\n    return this.client.get('/api/v1/indexer')\n  }\n\n  async getById(id: number): Promise<Indexer> {\n    return this.client.get(`/api/v1/indexer/${id}`)\n  }\n\n  async create(indexer: Omit<Indexer, 'id'>): Promise<Indexer> {\n    return this.client.post('/api/v1/indexer', indexer)\n  }\n\n  async update(id: number, indexer: Partial<Indexer> & { id: number }, forceSave?: boolean): Promise<Indexer> {\n    return this.client.put(`/api/v1/indexer/${id}`, indexer, forceSave !== undefined ? { forceSave } : undefined)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v1/indexer/${id}`)\n  }\n\n  async bulkUpdate(indexers: IndexerBulk): Promise<Indexer[]> {\n    return this.client.put('/api/v1/indexer/bulk', indexers)\n  }\n\n  async bulkDelete(ids: number[]): Promise<void> {\n    return this.client.delete('/api/v1/indexer/bulk', { ids })\n  }\n\n  async getSchema(): Promise<Indexer[]> {\n    return this.client.get('/api/v1/indexer/schema')\n  }\n\n  async test(indexer: Partial<Indexer>): Promise<void> {\n    return this.client.post('/api/v1/indexer/test', indexer)\n  }\n\n  async testAll(): Promise<void> {\n    return this.client.post('/api/v1/indexer/testall')\n  }\n}\n\nexport interface GetIndexerStatsOptions {\n  startDate?: Date | string\n  endDate?: Date | string\n  indexers?: number[]\n  protocols?: number[]\n  tags?: number[]\n  [key: string]: unknown\n}\n\nexport class IndexerStatsResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: GetIndexerStatsOptions): Promise<IndexerStats> {\n    if (!options) {\n      return this.client.get('/api/v1/indexerstats')\n    }\n\n    const params: Record<string, unknown> = { ...options }\n    if (options.startDate instanceof Date) {\n      params.startDate = options.startDate.toISOString()\n    }\n    if (options.endDate instanceof Date) {\n      params.endDate = options.endDate.toISOString()\n    }\n\n    return this.client.get('/api/v1/indexerstats', params)\n  }\n}\n\nexport class IndexerStatusResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<IndexerStatus[]> {\n    return this.client.get('/api/v1/indexerstatus')\n  }\n\n  async getById(id: number): Promise<IndexerStatus> {\n    return this.client.get(`/api/v1/indexerstatus/${id}`)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Release } from '../types.js'\n\nexport interface SearchOptions {\n  query?: string\n  type?: 'search' | 'tvsearch' | 'movie' | 'music' | 'book'\n  indexerIds?: number[]\n  categories?: number[]\n  limit?: number\n  offset?: number\n  [key: string]: unknown\n}\n\nexport class SearchResource {\n  constructor(private client: ClientMethods) {}\n\n  async query(options: SearchOptions): Promise<Release[]> {\n    return this.client.get('/api/v1/search', options)\n  }\n\n  async getById(guid: string): Promise<Release> {\n    return this.client.get(`/api/v1/search/${guid}`)\n  }\n\n  async grab(release: { guid: string; indexerId: number }): Promise<Release> {\n    return this.client.post('/api/v1/search', release)\n  }\n\n  async bulkGrab(releases: { guid: string; indexerId: number }[]): Promise<Release[]> {\n    return this.client.post('/api/v1/search/bulk', releases)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Application, ApplicationBulk } from '../types.js'\n\nexport class ApplicationResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Application[]> {\n    return this.client.get('/api/v1/applications')\n  }\n\n  async getById(id: number): Promise<Application> {\n    return this.client.get(`/api/v1/applications/${id}`)\n  }\n\n  async create(application: Omit<Application, 'id'>): Promise<Application> {\n    return this.client.post('/api/v1/applications', application)\n  }\n\n  async update(id: number, application: Partial<Application> & { id: number }, forceSave?: boolean): Promise<Application> {\n    return this.client.put(`/api/v1/applications/${id}`, application, forceSave !== undefined ? { forceSave } : undefined)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v1/applications/${id}`)\n  }\n\n  async bulkUpdate(applications: ApplicationBulk): Promise<Application[]> {\n    return this.client.put('/api/v1/applications/bulk', applications)\n  }\n\n  async bulkDelete(ids: number[]): Promise<void> {\n    return this.client.delete('/api/v1/applications/bulk', { ids })\n  }\n\n  async getSchema(): Promise<Application[]> {\n    return this.client.get('/api/v1/applications/schema')\n  }\n\n  async test(application: Partial<Application>): Promise<void> {\n    return this.client.post('/api/v1/applications/test', application)\n  }\n\n  async testAll(): Promise<void> {\n    return this.client.post('/api/v1/applications/testall')\n  }\n\n  async sync(): Promise<void> {\n    return this.client.post('/api/v1/applications/action/sync')\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { AppProfile } from '../types.js'\n\nexport class AppProfileResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<AppProfile[]> {\n    return this.client.get('/api/v1/appprofile')\n  }\n\n  async getById(id: number): Promise<AppProfile> {\n    return this.client.get(`/api/v1/appprofile/${id}`)\n  }\n\n  async create(profile: Omit<AppProfile, 'id'>): Promise<AppProfile> {\n    return this.client.post('/api/v1/appprofile', profile)\n  }\n\n  async update(id: number, profile: Partial<AppProfile> & { id: number }): Promise<AppProfile> {\n    return this.client.put(`/api/v1/appprofile/${id}`, profile)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v1/appprofile/${id}`)\n  }\n\n  async getSchema(): Promise<AppProfile> {\n    return this.client.get('/api/v1/appprofile/schema')\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { IndexerProxy } from '../types.js'\n\nexport class IndexerProxyResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<IndexerProxy[]> {\n    return this.client.get('/api/v1/indexerproxy')\n  }\n\n  async getById(id: number): Promise<IndexerProxy> {\n    return this.client.get(`/api/v1/indexerproxy/${id}`)\n  }\n\n  async create(proxy: Omit<IndexerProxy, 'id'>): Promise<IndexerProxy> {\n    return this.client.post('/api/v1/indexerproxy', proxy)\n  }\n\n  async update(id: number, proxy: Partial<IndexerProxy> & { id: number }, forceSave?: boolean): Promise<IndexerProxy> {\n    return this.client.put(`/api/v1/indexerproxy/${id}`, proxy, forceSave !== undefined ? { forceSave } : undefined)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v1/indexerproxy/${id}`)\n  }\n\n  async getSchema(): Promise<IndexerProxy[]> {\n    return this.client.get('/api/v1/indexerproxy/schema')\n  }\n\n  async test(proxy: Partial<IndexerProxy>): Promise<void> {\n    return this.client.post('/api/v1/indexerproxy/test', proxy)\n  }\n\n  async testAll(): Promise<void> {\n    return this.client.post('/api/v1/indexerproxy/testall')\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { CommandResource } from '../types.js'\n\nexport type ProwlarrCommand =\n  | { name: 'ApplicationCheckUpdate' }\n  | { name: 'ApplicationIndexerSync'; forceSync?: boolean }\n  | { name: 'Backup' }\n  | { name: 'ClearLog' }\n  | { name: 'IndexerStatus' }\n  | { name: 'RssSync' }\n  | { name: 'RefreshIndexers' }\n\nexport class CommandResource_ {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<CommandResource[]> {\n    return this.client.get('/api/v1/command')\n  }\n\n  async getById(id: number): Promise<CommandResource> {\n    return this.client.get(`/api/v1/command/${id}`)\n  }\n\n  async execute(command: ProwlarrCommand): Promise<CommandResource> {\n    return this.client.post('/api/v1/command', command)\n  }\n\n  async cancel(id: number): Promise<void> {\n    return this.client.delete(`/api/v1/command/${id}`)\n  }\n\n  // Convenience methods\n  async refreshIndexers(): Promise<CommandResource> {\n    return this.execute({ name: 'RefreshIndexers' })\n  }\n\n  async rssSync(): Promise<CommandResource> {\n    return this.execute({ name: 'RssSync' })\n  }\n\n  async backup(): Promise<CommandResource> {\n    return this.execute({ name: 'Backup' })\n  }\n\n  async applicationIndexerSync(forceSync?: boolean): Promise<CommandResource> {\n    return this.execute({ name: 'ApplicationIndexerSync', forceSync })\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { PaginationOptions, PaginatedResponse } from '../../core/types.js'\nimport type { History, HistoryEventType } from '../types.js'\n\n// Numeric values pinned to upstream Prowlarr enum\n// (src/NzbDrone.Core/History/History.cs — HistoryEventType).\n// The .NET model binder rejects the string form even though the OpenAPI\n// spec declares it; numeric values are stable across releases.\nconst HISTORY_EVENT_TYPE_VALUES = {\n  unknown: 0,\n  releaseGrabbed: 1,\n  indexerQuery: 2,\n  indexerRss: 3,\n  indexerAuth: 4,\n  indexerInfo: 5,\n} as const satisfies Record<HistoryEventType, number>\n\nexport type EventTypeInput = HistoryEventType | number\nexport type EventTypeFilter = EventTypeInput | EventTypeInput[]\n\nfunction encodeEventType(value: EventTypeInput): number\nfunction encodeEventType(value: EventTypeFilter): number | number[]\nfunction encodeEventType(value: EventTypeFilter | undefined): number | number[] | undefined\nfunction encodeEventType(value: EventTypeFilter | undefined): number | number[] | undefined {\n  if (value === undefined) return undefined\n  if (Array.isArray(value)) {\n    return value.map((v) => (typeof v === 'number' ? v : HISTORY_EVENT_TYPE_VALUES[v]))\n  }\n  return typeof value === 'number' ? value : HISTORY_EVENT_TYPE_VALUES[value]\n}\n\nexport interface GetHistoryOptions extends PaginationOptions {\n  eventType?: EventTypeFilter\n  indexerId?: number\n  indexerIds?: number[]\n  downloadId?: string\n  successful?: boolean\n}\n\nfunction normalize(options: GetHistoryOptions | undefined) {\n  if (!options) return options\n  const { eventType, ...rest } = options\n  return eventType === undefined ? rest : { ...rest, eventType: encodeEventType(eventType) }\n}\n\nexport class HistoryResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: GetHistoryOptions): Promise<PaginatedResponse<History>> {\n    return this.client.get('/api/v1/history', normalize(options))\n  }\n\n  async *getAll(options?: Omit<GetHistoryOptions, 'page'>): AsyncGenerator<History, void, undefined> {\n    yield* this.client.paginate<History>('/api/v1/history', normalize(options))\n  }\n\n  async getAllArray(options?: Omit<GetHistoryOptions, 'page'>): Promise<History[]> {\n    return this.client.paginateAll<History>('/api/v1/history', normalize(options))\n  }\n\n  async getByIndexer(indexerId: number, options?: { limit?: number }): Promise<History[]> {\n    return this.client.get('/api/v1/history/indexer', { indexerId, ...options })\n  }\n\n  async getSince(date: Date | string, options?: { eventType?: EventTypeInput }): Promise<History[]> {\n    const dateStr = date instanceof Date ? date.toISOString() : date\n    const { eventType, ...rest } = options ?? {}\n    return this.client.get('/api/v1/history/since', {\n      date: dateStr,\n      ...rest,\n      ...(eventType !== undefined && { eventType: encodeEventType(eventType) }),\n    })\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { DownloadClient, DownloadClientBulk, DownloadClientConfig } from '../types.js'\n\nexport class DownloadClientResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<DownloadClient[]> {\n    return this.client.get('/api/v1/downloadclient')\n  }\n\n  async getById(id: number): Promise<DownloadClient> {\n    return this.client.get(`/api/v1/downloadclient/${id}`)\n  }\n\n  async create(client: Omit<DownloadClient, 'id'>): Promise<DownloadClient> {\n    return this.client.post('/api/v1/downloadclient', client)\n  }\n\n  async update(id: number, client: Partial<DownloadClient> & { id: number }, forceSave?: boolean): Promise<DownloadClient> {\n    return this.client.put(`/api/v1/downloadclient/${id}`, client, forceSave !== undefined ? { forceSave } : undefined)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v1/downloadclient/${id}`)\n  }\n\n  async bulkUpdate(clients: DownloadClientBulk): Promise<DownloadClient[]> {\n    return this.client.put('/api/v1/downloadclient/bulk', clients)\n  }\n\n  async bulkDelete(ids: number[]): Promise<void> {\n    return this.client.delete('/api/v1/downloadclient/bulk', { ids })\n  }\n\n  async getSchema(): Promise<DownloadClient[]> {\n    return this.client.get('/api/v1/downloadclient/schema')\n  }\n\n  async test(client: Partial<DownloadClient>): Promise<void> {\n    return this.client.post('/api/v1/downloadclient/test', client)\n  }\n\n  async testAll(): Promise<void> {\n    return this.client.post('/api/v1/downloadclient/testall')\n  }\n}\n\nexport class DownloadClientConfigResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<DownloadClientConfig> {\n    return this.client.get('/api/v1/config/downloadclient')\n  }\n\n  async update(config: Partial<DownloadClientConfig> & { id: number }): Promise<DownloadClientConfig> {\n    return this.client.put(`/api/v1/config/downloadclient/${config.id}`, config)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Notification } from '../types.js'\n\nexport class NotificationResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Notification[]> {\n    return this.client.get('/api/v1/notification')\n  }\n\n  async getById(id: number): Promise<Notification> {\n    return this.client.get(`/api/v1/notification/${id}`)\n  }\n\n  async create(notification: Omit<Notification, 'id'>): Promise<Notification> {\n    return this.client.post('/api/v1/notification', notification)\n  }\n\n  async update(id: number, notification: Partial<Notification> & { id: number }, forceSave?: boolean): Promise<Notification> {\n    return this.client.put(`/api/v1/notification/${id}`, notification, forceSave !== undefined ? { forceSave } : undefined)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v1/notification/${id}`)\n  }\n\n  async getSchema(): Promise<Notification[]> {\n    return this.client.get('/api/v1/notification/schema')\n  }\n\n  async test(notification: Partial<Notification>): Promise<void> {\n    return this.client.post('/api/v1/notification/test', notification)\n  }\n\n  async testAll(): Promise<void> {\n    return this.client.post('/api/v1/notification/testall')\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Tag, TagDetails } from '../types.js'\n\nexport class TagResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Tag[]> {\n    return this.client.get('/api/v1/tag')\n  }\n\n  async getById(id: number): Promise<Tag> {\n    return this.client.get(`/api/v1/tag/${id}`)\n  }\n\n  async create(tag: Omit<Tag, 'id'>): Promise<Tag> {\n    return this.client.post('/api/v1/tag', tag)\n  }\n\n  async update(id: number, tag: Partial<Tag> & { id: number }): Promise<Tag> {\n    return this.client.put(`/api/v1/tag/${id}`, tag)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v1/tag/${id}`)\n  }\n}\n\nexport class TagDetailsResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<TagDetails[]> {\n    return this.client.get('/api/v1/tag/detail')\n  }\n\n  async getById(id: number): Promise<TagDetails> {\n    return this.client.get(`/api/v1/tag/detail/${id}`)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { SystemResource, Health, Task, Backup, Log, LogFile, Update } from '../types.js'\nimport type { PaginationOptions, PaginatedResponse } from '../../core/types.js'\nimport { validateFilename } from '../../core/utils.js'\n\nexport class SystemInfoResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<SystemResource> {\n    return this.client.get('/api/v1/system/status')\n  }\n\n  async getRoutes(): Promise<unknown[]> {\n    return this.client.get('/api/v1/system/routes')\n  }\n\n  async getDuplicateRoutes(): Promise<unknown[]> {\n    return this.client.get('/api/v1/system/routes/duplicate')\n  }\n\n  async restart(): Promise<void> {\n    return this.client.post('/api/v1/system/restart')\n  }\n\n  async shutdown(): Promise<void> {\n    return this.client.post('/api/v1/system/shutdown')\n  }\n\n  /**\n   * Simple health check - returns \"Pong\"\n   */\n  async ping(): Promise<string> {\n    return this.client.get('/ping')\n  }\n}\n\nexport class HealthResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Health[]> {\n    return this.client.get('/api/v1/health')\n  }\n}\n\nexport class TaskResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Task[]> {\n    return this.client.get('/api/v1/system/task')\n  }\n\n  async getById(id: number): Promise<Task> {\n    return this.client.get(`/api/v1/system/task/${id}`)\n  }\n}\n\nexport class BackupResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Backup[]> {\n    return this.client.get('/api/v1/system/backup')\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v1/system/backup/${id}`)\n  }\n\n  async restore(id: number): Promise<void> {\n    return this.client.post(`/api/v1/system/backup/restore/${id}`)\n  }\n\n  async restoreUpload(formData: FormData): Promise<void> {\n    return this.client.postForm('/api/v1/system/backup/restore/upload', formData)\n  }\n}\n\nexport class LogResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: PaginationOptions): Promise<PaginatedResponse<Log>> {\n    return this.client.get('/api/v1/log', options)\n  }\n\n  async *getAll(options?: Omit<PaginationOptions, 'page'>): AsyncGenerator<Log, void, undefined> {\n    yield* this.client.paginate<Log>('/api/v1/log', options)\n  }\n\n  async getAllArray(options?: Omit<PaginationOptions, 'page'>): Promise<Log[]> {\n    return this.client.paginateAll<Log>('/api/v1/log', options)\n  }\n}\n\nexport class LogFileResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<LogFile[]> {\n    return this.client.get('/api/v1/log/file')\n  }\n\n  async getUpdate(): Promise<LogFile[]> {\n    return this.client.get('/api/v1/log/file/update')\n  }\n\n  /**\n   * Download a specific log file's contents\n   */\n  async download(filename: string): Promise<string> {\n    validateFilename(filename)\n    const sanitized = encodeURIComponent(filename)\n    return this.client.getText(`/api/v1/log/file/${sanitized}`)\n  }\n\n  /**\n   * Download a specific update log file's contents\n   */\n  async downloadUpdate(filename: string): Promise<string> {\n    validateFilename(filename)\n    const sanitized = encodeURIComponent(filename)\n    return this.client.getText(`/api/v1/log/file/update/${sanitized}`)\n  }\n}\n\nexport class UpdateResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Update[]> {\n    return this.client.get('/api/v1/update')\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { HostConfig, UiConfig, DevelopmentConfig } from '../types.js'\n\nexport class HostConfigResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<HostConfig> {\n    return this.client.get('/api/v1/config/host')\n  }\n\n  async update(config: Partial<HostConfig> & { id: number }): Promise<HostConfig> {\n    return this.client.put(`/api/v1/config/host/${config.id}`, config)\n  }\n}\n\nexport class UiConfigResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<UiConfig> {\n    return this.client.get('/api/v1/config/ui')\n  }\n\n  async update(config: Partial<UiConfig> & { id: number }): Promise<UiConfig> {\n    return this.client.put(`/api/v1/config/ui/${config.id}`, config)\n  }\n}\n\nexport class DevelopmentConfigResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<DevelopmentConfig> {\n    return this.client.get('/api/v1/config/development')\n  }\n\n  async update(config: Partial<DevelopmentConfig> & { id: number }): Promise<DevelopmentConfig> {\n    return this.client.put(`/api/v1/config/development/${config.id}`, config)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { CustomFilter } from '../types.js'\n\nexport class CustomFilterResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<CustomFilter[]> {\n    return this.client.get('/api/v1/customfilter')\n  }\n\n  async getById(id: number): Promise<CustomFilter> {\n    return this.client.get(`/api/v1/customfilter/${id}`)\n  }\n\n  async create(filter: Omit<CustomFilter, 'id'>): Promise<CustomFilter> {\n    return this.client.post('/api/v1/customfilter', filter)\n  }\n\n  async update(id: number, filter: Partial<CustomFilter> & { id: number }): Promise<CustomFilter> {\n    return this.client.put(`/api/v1/customfilter/${id}`, filter)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v1/customfilter/${id}`)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\n\nexport interface FileSystemEntry {\n  type: 'file' | 'folder' | 'drive'\n  name: string\n  path: string\n  size?: number\n  lastModified?: string\n}\n\nexport interface GetFileSystemOptions {\n  path: string\n  includeFiles?: boolean\n  allowFoldersWithoutTrailingSlashes?: boolean\n  [key: string]: unknown\n}\n\nexport class FileSystemResource {\n  constructor(private client: ClientMethods) {}\n\n  /**\n   * Browse the filesystem at the given path\n   */\n  async get(options: GetFileSystemOptions): Promise<FileSystemEntry[]> {\n    return this.client.get('/api/v1/filesystem', options)\n  }\n\n  /**\n   * Get the type of a path (file, folder, etc.)\n   */\n  async getType(path: string): Promise<{ type: string }> {\n    return this.client.get('/api/v1/filesystem/type', { path })\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { LocalizationOption } from '../types.js'\n\nexport class LocalizationResource {\n  constructor(private client: ClientMethods) {}\n\n  /**\n   * Get localization dictionary\n   */\n  async get(): Promise<Record<string, string>> {\n    return this.client.get('/api/v1/localization')\n  }\n\n  /**\n   * Get available localization language options\n   */\n  async getOptions(): Promise<LocalizationOption[]> {\n    return this.client.get('/api/v1/localization/options')\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\n\n/**\n * Search options for Newznab/Torznab queries\n */\nexport interface NewznabSearchOptions {\n  /** Search query string */\n  q?: string\n  /** Categories to search (comma-separated or array) */\n  cat?: string | number[]\n  /** Extended attributes flag */\n  extended?: 0 | 1\n  /** Maximum results to return */\n  limit?: number\n  /** Offset for pagination */\n  offset?: number\n  /** API key (optional, uses configured key if not provided) */\n  apikey?: string\n  [key: string]: unknown\n}\n\n/**\n * TV search specific options\n */\nexport interface NewznabTvSearchOptions extends NewznabSearchOptions {\n  /** TVDB ID */\n  tvdbid?: number\n  /** TVRage ID */\n  rid?: number\n  /** TVMAZE ID */\n  tvmazeid?: number\n  /** IMDB ID (for TV shows) */\n  imdbid?: string\n  /** TMDb ID */\n  tmdbid?: number\n  /** Season number */\n  season?: number | string\n  /** Episode number */\n  ep?: number | string\n}\n\n/**\n * Movie search specific options\n */\nexport interface NewznabMovieSearchOptions extends NewznabSearchOptions {\n  /** IMDB ID (e.g., \"tt1234567\" or just \"1234567\") */\n  imdbid?: string\n  /** TMDb ID */\n  tmdbid?: number\n}\n\n/**\n * Music search specific options\n */\nexport interface NewznabMusicSearchOptions extends NewznabSearchOptions {\n  /** Album name */\n  album?: string\n  /** Artist name */\n  artist?: string\n  /** Music label */\n  label?: string\n  /** Release year */\n  year?: number\n}\n\n/**\n * Book search specific options\n */\nexport interface NewznabBookSearchOptions extends NewznabSearchOptions {\n  /** Book title */\n  title?: string\n  /** Author name */\n  author?: string\n}\n\n/**\n * Resource for accessing Newznab/Torznab API endpoints\n *\n * These endpoints provide standardized indexer access using the Newznab protocol,\n * which returns XML responses. Torznab is the torrent-specific extension of Newznab.\n *\n * @example\n * ```typescript\n * const prowlarr = new ProwlarrClient({ baseUrl: 'http://localhost:9696', apiKey: 'your-api-key' })\n *\n * // Get indexer capabilities\n * const caps = await prowlarr.newznab.getCaps(1)\n *\n * // Search for releases\n * const results = await prowlarr.newznab.search(1, { q: 'ubuntu' })\n *\n * // TV search with TVDB ID\n * const tvResults = await prowlarr.newznab.tvSearch(1, { tvdbid: 12345, season: 1, ep: 1 })\n *\n * // Download a release\n * const nzb = await prowlarr.newznab.download(1, 'release-guid')\n * ```\n */\nexport class NewznabResource {\n  constructor(private client: ClientMethods) {}\n\n  /**\n   * Get indexer capabilities (Newznab caps function)\n   * Returns XML describing what the indexer supports including categories,\n   * search capabilities, and server info.\n   *\n   * @param indexerId The indexer ID\n   * @returns XML string containing indexer capabilities\n   */\n  async getCaps(indexerId: number): Promise<string> {\n    return this.client.getText(`/${indexerId}/api`, { t: 'caps' })\n  }\n\n  /**\n   * Perform a general search using Newznab protocol\n   *\n   * @param indexerId The indexer ID\n   * @param options Search options\n   * @returns XML string containing search results\n   */\n  async search(indexerId: number, options?: NewznabSearchOptions): Promise<string> {\n    return this.client.getText(`/${indexerId}/api`, {\n      t: 'search',\n      ...this.formatOptions(options)\n    })\n  }\n\n  /**\n   * Perform a TV search using Newznab protocol\n   * Supports searching by TVDB ID, TVRage ID, IMDB ID, or query string\n   *\n   * @param indexerId The indexer ID\n   * @param options TV search options including IDs and season/episode\n   * @returns XML string containing search results\n   */\n  async tvSearch(indexerId: number, options?: NewznabTvSearchOptions): Promise<string> {\n    return this.client.getText(`/${indexerId}/api`, {\n      t: 'tvsearch',\n      ...this.formatOptions(options)\n    })\n  }\n\n  /**\n   * Perform a movie search using Newznab protocol\n   * Supports searching by IMDB ID, TMDb ID, or query string\n   *\n   * @param indexerId The indexer ID\n   * @param options Movie search options\n   * @returns XML string containing search results\n   */\n  async movieSearch(indexerId: number, options?: NewznabMovieSearchOptions): Promise<string> {\n    return this.client.getText(`/${indexerId}/api`, {\n      t: 'movie',\n      ...this.formatOptions(options)\n    })\n  }\n\n  /**\n   * Perform a music search using Newznab protocol\n   *\n   * @param indexerId The indexer ID\n   * @param options Music search options\n   * @returns XML string containing search results\n   */\n  async musicSearch(indexerId: number, options?: NewznabMusicSearchOptions): Promise<string> {\n    return this.client.getText(`/${indexerId}/api`, {\n      t: 'music',\n      ...this.formatOptions(options)\n    })\n  }\n\n  /**\n   * Perform a book search using Newznab protocol\n   *\n   * @param indexerId The indexer ID\n   * @param options Book search options\n   * @returns XML string containing search results\n   */\n  async bookSearch(indexerId: number, options?: NewznabBookSearchOptions): Promise<string> {\n    return this.client.getText(`/${indexerId}/api`, {\n      t: 'book',\n      ...this.formatOptions(options)\n    })\n  }\n\n  /**\n   * Download a release (NZB file for Usenet, torrent file for Torznab)\n   *\n   * @param indexerId The indexer ID\n   * @param guid The release GUID or link identifier\n   * @returns ArrayBuffer containing the downloaded file\n   */\n  async download(indexerId: number, guid: string): Promise<ArrayBuffer> {\n    return this.client.getBuffer(`/${indexerId}/download`, { link: guid })\n  }\n\n  /**\n   * Get raw RSS/Atom feed for an indexer\n   *\n   * @param indexerId The indexer ID\n   * @param options Optional feed options (limit, cat, etc.)\n   * @returns XML string containing the feed\n   */\n  async getFeed(indexerId: number, options?: NewznabSearchOptions): Promise<string> {\n    return this.client.getText(`/${indexerId}/api`, {\n      t: 'search',\n      ...this.formatOptions(options)\n    })\n  }\n\n  /**\n   * Format options for API call, converting arrays to comma-separated strings\n   */\n  private formatOptions(options?: Record<string, unknown>): Record<string, unknown> {\n    if (!options) return {}\n\n    const formatted: Record<string, unknown> = {}\n    for (const [key, value] of Object.entries(options)) {\n      if (Array.isArray(value)) {\n        formatted[key] = value.join(',')\n      } else if (value !== undefined) {\n        formatted[key] = value\n      }\n    }\n    return formatted\n  }\n}\n","import { BaseClient, type ClientConfig } from '../core/index.js'\nimport { IndexerResource, IndexerStatsResource, IndexerStatusResource } from './resources/indexer.js'\nimport { SearchResource } from './resources/search.js'\nimport { ApplicationResource } from './resources/application.js'\nimport { AppProfileResource } from './resources/appProfile.js'\nimport { IndexerProxyResource } from './resources/indexerProxy.js'\nimport { CommandResource_ } from './resources/command.js'\nimport { HistoryResource } from './resources/history.js'\nimport { DownloadClientResource, DownloadClientConfigResource } from './resources/downloadClient.js'\nimport { NotificationResource } from './resources/notification.js'\nimport { TagResource, TagDetailsResource } from './resources/tag.js'\nimport { SystemInfoResource, HealthResource, TaskResource, BackupResource, LogResource, LogFileResource, UpdateResource } from './resources/system.js'\nimport { HostConfigResource, UiConfigResource, DevelopmentConfigResource } from './resources/config.js'\nimport { CustomFilterResource } from './resources/customFilter.js'\nimport { FileSystemResource } from './resources/filesystem.js'\nimport { LocalizationResource } from './resources/localization.js'\nimport { NewznabResource } from './resources/newznab.js'\n\nexport class ProwlarrClient extends BaseClient {\n  public readonly indexer: IndexerResource\n  public readonly indexerStats: IndexerStatsResource\n  public readonly indexerStatus: IndexerStatusResource\n  public readonly search: SearchResource\n  public readonly application: ApplicationResource\n  public readonly appProfile: AppProfileResource\n  public readonly indexerProxy: IndexerProxyResource\n  public readonly command: CommandResource_\n  public readonly history: HistoryResource\n  public readonly downloadClient: DownloadClientResource\n  public readonly downloadClientConfig: DownloadClientConfigResource\n  public readonly notification: NotificationResource\n  public readonly tag: TagResource\n  public readonly tagDetails: TagDetailsResource\n  public readonly system: SystemInfoResource\n  public readonly health: HealthResource\n  public readonly task: TaskResource\n  public readonly backup: BackupResource\n  public readonly log: LogResource\n  public readonly logFile: LogFileResource\n  public readonly update: UpdateResource\n  public readonly hostConfig: HostConfigResource\n  public readonly uiConfig: UiConfigResource\n  public readonly developmentConfig: DevelopmentConfigResource\n  public readonly customFilter: CustomFilterResource\n  public readonly filesystem: FileSystemResource\n  public readonly localization: LocalizationResource\n  public readonly newznab: NewznabResource\n\n  constructor(config: ClientConfig) {\n    super(config)\n\n    this.indexer = new IndexerResource(this)\n    this.indexerStats = new IndexerStatsResource(this)\n    this.indexerStatus = new IndexerStatusResource(this)\n    this.search = new SearchResource(this)\n    this.application = new ApplicationResource(this)\n    this.appProfile = new AppProfileResource(this)\n    this.indexerProxy = new IndexerProxyResource(this)\n    this.command = new CommandResource_(this)\n    this.history = new HistoryResource(this)\n    this.downloadClient = new DownloadClientResource(this)\n    this.downloadClientConfig = new DownloadClientConfigResource(this)\n    this.notification = new NotificationResource(this)\n    this.tag = new TagResource(this)\n    this.tagDetails = new TagDetailsResource(this)\n    this.system = new SystemInfoResource(this)\n    this.health = new HealthResource(this)\n    this.task = new TaskResource(this)\n    this.backup = new BackupResource(this)\n    this.log = new LogResource(this)\n    this.logFile = new LogFileResource(this)\n    this.update = new UpdateResource(this)\n    this.hostConfig = new HostConfigResource(this)\n    this.uiConfig = new UiConfigResource(this)\n    this.developmentConfig = new DevelopmentConfigResource(this)\n    this.customFilter = new CustomFilterResource(this)\n    this.filesystem = new FileSystemResource(this)\n    this.localization = new LocalizationResource(this)\n    this.newznab = new NewznabResource(this)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Artist, ArtistEditor } from '../types.js'\n\nexport interface GetArtistOptions {\n  mbId?: string\n  [key: string]: unknown\n}\n\nexport interface DeleteArtistOptions {\n  deleteFiles?: boolean\n  addImportListExclusion?: boolean\n  [key: string]: unknown\n}\n\nexport class ArtistResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(options?: GetArtistOptions): Promise<Artist[]> {\n    return this.client.get('/api/v1/artist', options)\n  }\n\n  async getById(id: number): Promise<Artist> {\n    return this.client.get(`/api/v1/artist/${id}`)\n  }\n\n  async create(artist: Omit<Artist, 'id'>): Promise<Artist> {\n    return this.client.post('/api/v1/artist', artist)\n  }\n\n  async update(id: number, artist: Partial<Artist> & { id: number }, moveFiles?: boolean): Promise<Artist> {\n    return this.client.put(`/api/v1/artist/${id}`, artist, moveFiles !== undefined ? { moveFiles } : undefined)\n  }\n\n  async delete(id: number, options?: DeleteArtistOptions): Promise<void> {\n    return this.client.delete(`/api/v1/artist/${id}`, undefined, options)\n  }\n\n  async lookup(term: string): Promise<Artist[]> {\n    return this.client.get('/api/v1/artist/lookup', { term })\n  }\n\n  async bulkEdit(resource: ArtistEditor): Promise<Artist[]> {\n    return this.client.put('/api/v1/artist/editor', resource)\n  }\n\n  async bulkDelete(artistIds: number[], options?: DeleteArtistOptions): Promise<void> {\n    return this.client.delete('/api/v1/artist/editor', {\n      artistIds,\n      ...options\n    })\n  }\n\n  async refresh(artistId?: number): Promise<void> {\n    return this.client.post('/api/v1/command', {\n      name: 'RefreshArtist',\n      artistId\n    })\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Album, AlbumsMonitored, AddAlbumOptions } from '../types.js'\n\nexport interface GetAlbumOptions {\n  artistId?: number\n  albumIds?: number[]\n  foreignAlbumId?: string\n  includeAllArtistAlbums?: boolean\n  [key: string]: unknown\n}\n\nexport interface DeleteAlbumOptions {\n  deleteFiles?: boolean\n  addImportListExclusion?: boolean\n  [key: string]: unknown\n}\n\nexport class AlbumResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(options?: GetAlbumOptions): Promise<Album[]> {\n    return this.client.get('/api/v1/album', options)\n  }\n\n  async getById(id: number): Promise<Album> {\n    return this.client.get(`/api/v1/album/${id}`)\n  }\n\n  async create(album: Omit<Album, 'id'> & { addOptions?: AddAlbumOptions }): Promise<Album> {\n    return this.client.post('/api/v1/album', album)\n  }\n\n  async update(id: number, album: Partial<Album> & { id: number }): Promise<Album> {\n    return this.client.put(`/api/v1/album/${id}`, album)\n  }\n\n  async delete(id: number, options?: DeleteAlbumOptions): Promise<void> {\n    return this.client.delete(`/api/v1/album/${id}`, undefined, options)\n  }\n\n  async lookup(term: string): Promise<Album[]> {\n    return this.client.get('/api/v1/album/lookup', { term })\n  }\n\n  async monitor(data: AlbumsMonitored): Promise<Album[]> {\n    return this.client.put('/api/v1/album/monitor', data)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Track, TrackFile, TrackFileList } from '../types.js'\n\nexport interface GetTrackOptions {\n  artistId?: number\n  albumId?: number\n  albumReleaseId?: number\n  trackIds?: number[]\n  [key: string]: unknown\n}\n\nexport class TrackResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(options?: GetTrackOptions): Promise<Track[]> {\n    return this.client.get('/api/v1/track', options)\n  }\n\n  async getById(id: number): Promise<Track> {\n    return this.client.get(`/api/v1/track/${id}`)\n  }\n}\n\nexport class TrackFileResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(options?: { artistId?: number; albumId?: number; trackFileIds?: number[] }): Promise<TrackFile[]> {\n    return this.client.get('/api/v1/trackfile', options)\n  }\n\n  async getById(id: number): Promise<TrackFile> {\n    return this.client.get(`/api/v1/trackfile/${id}`)\n  }\n\n  async update(id: number, trackFile: Partial<TrackFile> & { id: number }): Promise<TrackFile> {\n    return this.client.put(`/api/v1/trackfile/${id}`, trackFile)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v1/trackfile/${id}`)\n  }\n\n  async bulkDelete(trackFileIds: number[]): Promise<void> {\n    return this.client.delete('/api/v1/trackfile/bulk', { trackFileIds })\n  }\n\n  async updateList(trackFiles: TrackFileList): Promise<TrackFile[]> {\n    return this.client.put('/api/v1/trackfile/editor', trackFiles)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Album } from '../types.js'\n\nexport interface CalendarOptions {\n  start?: string\n  end?: string\n  unmonitored?: boolean\n  includeArtist?: boolean\n  [key: string]: unknown\n}\n\nexport interface CalendarFeedOptions {\n  pastDays?: number\n  futureDays?: number\n  tags?: string\n  unmonitored?: boolean\n  [key: string]: unknown\n}\n\nexport class CalendarResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: CalendarOptions): Promise<Album[]> {\n    return this.client.get('/api/v1/calendar', options)\n  }\n\n  async getById(id: number): Promise<Album> {\n    return this.client.get(`/api/v1/calendar/${id}`)\n  }\n\n  buildFeedUrl(baseUrl: string, apiKey: string, options?: CalendarFeedOptions): string {\n    const params = new URLSearchParams()\n    params.set('apikey', apiKey)\n    if (options?.pastDays !== undefined) params.set('pastDays', String(options.pastDays))\n    if (options?.futureDays !== undefined) params.set('futureDays', String(options.futureDays))\n    if (options?.tags) params.set('tags', options.tags)\n    if (options?.unmonitored !== undefined) params.set('unmonitored', String(options.unmonitored))\n    return `${baseUrl}/feed/v1/calendar/lidarr.ics?${params}`\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { CommandResource, QualityModel } from '../types.js'\n\n/**\n * File entry for the ManualImport command\n */\nexport interface LidarrManualImportFile {\n  path: string\n  folderName?: string\n  downloadId?: string\n  quality?: QualityModel\n  releaseGroup?: string\n  indexerFlags?: number\n  artistId?: number\n  albumId?: number\n  albumReleaseId?: number\n  trackIds?: number[]\n  disableReleaseSwitching?: boolean\n  replaceExistingFiles?: boolean\n}\n\nexport type LidarrCommand =\n  | { name: 'RefreshArtist'; artistId?: number }\n  | { name: 'RefreshAlbum'; albumId?: number }\n  | { name: 'RescanArtist'; artistId?: number }\n  | { name: 'ArtistSearch'; artistId: number }\n  | { name: 'AlbumSearch'; albumIds: number[] }\n  | { name: 'MissingAlbumSearch'; artistId?: number }\n  | { name: 'CutoffUnmetAlbumSearch'; artistId?: number }\n  | { name: 'ApplicationUpdateCheck' }\n  | { name: 'Backup' }\n  | { name: 'RefreshMonitoredDownloads' }\n  | { name: 'ClearBlocklist' }\n  | { name: 'CleanUpRecycleBin' }\n  | { name: 'DeleteLogFiles' }\n  | { name: 'DeleteUpdateLogFiles' }\n  | { name: 'DownloadedAlbumsScan'; path?: string; downloadClientId?: string; importMode?: 'Auto' | 'Move' | 'Copy' }\n  | { name: 'RssSync' }\n  | { name: 'Housekeeping' }\n  | { name: 'ManualImport'; files: LidarrManualImportFile[]; importMode?: 'Auto' | 'Move' | 'Copy' }\n\nexport class CommandResource_ {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<CommandResource[]> {\n    return this.client.get('/api/v1/command')\n  }\n\n  async getById(id: number): Promise<CommandResource> {\n    return this.client.get(`/api/v1/command/${id}`)\n  }\n\n  async execute(command: LidarrCommand): Promise<CommandResource> {\n    return this.client.post('/api/v1/command', command)\n  }\n\n  async cancel(id: number): Promise<void> {\n    return this.client.delete(`/api/v1/command/${id}`)\n  }\n\n  // Convenience methods\n  async refreshArtist(artistId?: number): Promise<CommandResource> {\n    return this.execute({ name: 'RefreshArtist', artistId })\n  }\n\n  async refreshAlbum(albumId?: number): Promise<CommandResource> {\n    return this.execute({ name: 'RefreshAlbum', albumId })\n  }\n\n  async rescanArtist(artistId?: number): Promise<CommandResource> {\n    return this.execute({ name: 'RescanArtist', artistId })\n  }\n\n  async artistSearch(artistId: number): Promise<CommandResource> {\n    return this.execute({ name: 'ArtistSearch', artistId })\n  }\n\n  async albumSearch(albumIds: number[]): Promise<CommandResource> {\n    return this.execute({ name: 'AlbumSearch', albumIds })\n  }\n\n  async missingAlbumSearch(artistId?: number): Promise<CommandResource> {\n    return this.execute({ name: 'MissingAlbumSearch', artistId })\n  }\n\n  async rssSync(): Promise<CommandResource> {\n    return this.execute({ name: 'RssSync' })\n  }\n\n  async backup(): Promise<CommandResource> {\n    return this.execute({ name: 'Backup' })\n  }\n\n  async clearBlocklist(): Promise<CommandResource> {\n    return this.execute({ name: 'ClearBlocklist' })\n  }\n\n  async downloadedAlbumsScan(options?: { path?: string; downloadClientId?: string; importMode?: 'Auto' | 'Move' | 'Copy' }): Promise<CommandResource> {\n    return this.execute({ name: 'DownloadedAlbumsScan', ...options })\n  }\n\n  async manualImport(files: LidarrManualImportFile[], importMode?: 'Auto' | 'Move' | 'Copy'): Promise<CommandResource> {\n    return this.execute({ name: 'ManualImport', files, importMode })\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { PaginationOptions } from '../../core/types.js'\nimport type { Queue, QueueBulk, QueueStatus, QueuePagingResource } from '../types.js'\n\nexport interface GetQueueOptions extends PaginationOptions {\n  includeUnknownArtistItems?: boolean\n  includeArtist?: boolean\n  includeAlbum?: boolean\n}\n\nexport interface GetQueueDetailsOptions {\n  artistId?: number\n  albumIds?: number[]\n  includeArtist?: boolean\n  includeAlbum?: boolean\n  [key: string]: unknown\n}\n\nexport interface DeleteQueueOptions {\n  removeFromClient?: boolean\n  blocklist?: boolean\n  skipRedownload?: boolean\n  changeCategory?: boolean\n  [key: string]: unknown\n}\n\nexport class QueueResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: GetQueueOptions): Promise<QueuePagingResource> {\n    return this.client.get('/api/v1/queue', options)\n  }\n\n  async getDetails(options?: GetQueueDetailsOptions): Promise<Queue[]> {\n    return this.client.get('/api/v1/queue/details', options)\n  }\n\n  async getStatus(): Promise<QueueStatus> {\n    return this.client.get('/api/v1/queue/status')\n  }\n\n  async delete(id: number, options?: DeleteQueueOptions): Promise<void> {\n    return this.client.delete(`/api/v1/queue/${id}`, undefined, options)\n  }\n\n  async bulkDelete(data: QueueBulk & DeleteQueueOptions): Promise<void> {\n    return this.client.delete('/api/v1/queue/bulk', data)\n  }\n\n  async grab(ids: number[]): Promise<void> {\n    return this.client.post('/api/v1/queue/grab/bulk', { ids })\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { PaginationOptions } from '../../core/types.js'\nimport type { History, HistoryPagingResource, EntityHistoryEventType } from '../types.js'\n\n// Numeric values pinned to upstream Lidarr enum\n// (src/NzbDrone.Core/History/EntityHistory.cs — EntityHistoryEventType).\n// The .NET model binder rejects the string form even though the OpenAPI\n// spec declares it; numeric values are stable across releases.\nconst ENTITY_HISTORY_EVENT_TYPE_VALUES = {\n  unknown: 0,\n  grabbed: 1,\n  artistFolderImported: 2,\n  trackFileImported: 3,\n  downloadFailed: 4,\n  trackFileDeleted: 5,\n  trackFileRenamed: 6,\n  albumImportIncomplete: 7,\n  downloadImported: 8,\n  trackFileRetagged: 9,\n  downloadIgnored: 10,\n} as const satisfies Record<EntityHistoryEventType, number>\n\nexport type EventTypeInput = EntityHistoryEventType | number\nexport type EventTypeFilter = EventTypeInput | EventTypeInput[]\n\nfunction encodeEventType(value: EventTypeInput): number\nfunction encodeEventType(value: EventTypeFilter): number | number[]\nfunction encodeEventType(value: EventTypeFilter | undefined): number | number[] | undefined\nfunction encodeEventType(value: EventTypeFilter | undefined): number | number[] | undefined {\n  if (value === undefined) return undefined\n  if (Array.isArray(value)) {\n    return value.map((v) => (typeof v === 'number' ? v : ENTITY_HISTORY_EVENT_TYPE_VALUES[v]))\n  }\n  return typeof value === 'number' ? value : ENTITY_HISTORY_EVENT_TYPE_VALUES[value]\n}\n\nexport interface GetHistoryOptions extends PaginationOptions {\n  includeArtist?: boolean\n  includeAlbum?: boolean\n  includeTrack?: boolean\n  eventType?: EventTypeFilter\n  downloadId?: string\n  artistId?: number\n  albumId?: number\n}\n\nfunction normalize(options: GetHistoryOptions | undefined) {\n  if (!options) return options\n  const { eventType, ...rest } = options\n  return eventType === undefined ? rest : { ...rest, eventType: encodeEventType(eventType) }\n}\n\nexport class HistoryResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: GetHistoryOptions): Promise<HistoryPagingResource> {\n    return this.client.get('/api/v1/history', normalize(options))\n  }\n\n  async getSince(date: string, eventType?: EventTypeInput): Promise<History[]> {\n    return this.client.get('/api/v1/history/since', { date, eventType: encodeEventType(eventType) })\n  }\n\n  async getForArtist(artistId: number, albumId?: number, eventType?: EventTypeInput): Promise<History[]> {\n    return this.client.get('/api/v1/history/artist', { artistId, albumId, eventType: encodeEventType(eventType) })\n  }\n\n  async markAsFailed(id: number): Promise<void> {\n    return this.client.post(`/api/v1/history/failed/${id}`)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { ManualImport, ManualImportUpdate } from '../types.js'\n\nexport interface GetManualImportOptions {\n  folder?: string\n  downloadId?: string\n  artistId?: number\n  albumId?: number\n  filterExistingFiles?: boolean\n  replaceExistingFiles?: boolean\n  [key: string]: unknown\n}\n\nexport class ManualImportResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: GetManualImportOptions): Promise<ManualImport[]> {\n    return this.client.get('/api/v1/manualimport', options)\n  }\n\n  async process(imports: ManualImportUpdate[]): Promise<void> {\n    return this.client.post('/api/v1/manualimport', imports)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { QualityProfile, QualityDefinition } from '../types.js'\n\nexport class QualityProfileResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<QualityProfile[]> {\n    return this.client.get('/api/v1/qualityprofile')\n  }\n\n  async getById(id: number): Promise<QualityProfile> {\n    return this.client.get(`/api/v1/qualityprofile/${id}`)\n  }\n\n  async create(profile: Omit<QualityProfile, 'id'>): Promise<QualityProfile> {\n    return this.client.post('/api/v1/qualityprofile', profile)\n  }\n\n  async update(id: number, profile: Partial<QualityProfile> & { id: number }): Promise<QualityProfile> {\n    return this.client.put(`/api/v1/qualityprofile/${id}`, profile)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v1/qualityprofile/${id}`)\n  }\n}\n\nexport class QualityDefinitionResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<QualityDefinition[]> {\n    return this.client.get('/api/v1/qualitydefinition')\n  }\n\n  async getById(id: number): Promise<QualityDefinition> {\n    return this.client.get(`/api/v1/qualitydefinition/${id}`)\n  }\n\n  async update(id: number, definition: Partial<QualityDefinition> & { id: number }): Promise<QualityDefinition> {\n    return this.client.put(`/api/v1/qualitydefinition/${id}`, definition)\n  }\n\n  async updateAll(definitions: QualityDefinition[]): Promise<QualityDefinition[]> {\n    return this.client.put('/api/v1/qualitydefinition/update', definitions)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { MetadataProfile } from '../types.js'\n\nexport class MetadataProfileResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<MetadataProfile[]> {\n    return this.client.get('/api/v1/metadataprofile')\n  }\n\n  async getById(id: number): Promise<MetadataProfile> {\n    return this.client.get(`/api/v1/metadataprofile/${id}`)\n  }\n\n  async create(profile: Omit<MetadataProfile, 'id'>): Promise<MetadataProfile> {\n    return this.client.post('/api/v1/metadataprofile', profile)\n  }\n\n  async update(id: number, profile: Partial<MetadataProfile> & { id: number }): Promise<MetadataProfile> {\n    return this.client.put(`/api/v1/metadataprofile/${id}`, profile)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v1/metadataprofile/${id}`)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { Tag, TagDetails } from '../types.js'\n\nexport class TagResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Tag[]> {\n    return this.client.get('/api/v1/tag')\n  }\n\n  async getById(id: number): Promise<Tag> {\n    return this.client.get(`/api/v1/tag/${id}`)\n  }\n\n  async create(tag: Omit<Tag, 'id'>): Promise<Tag> {\n    return this.client.post('/api/v1/tag', tag)\n  }\n\n  async update(id: number, tag: Partial<Tag> & { id: number }): Promise<Tag> {\n    return this.client.put(`/api/v1/tag/${id}`, tag)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v1/tag/${id}`)\n  }\n}\n\nexport class TagDetailsResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<TagDetails[]> {\n    return this.client.get('/api/v1/tag/detail')\n  }\n\n  async getById(id: number): Promise<TagDetails> {\n    return this.client.get(`/api/v1/tag/detail/${id}`)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { RootFolder } from '../types.js'\n\nexport class RootFolderResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<RootFolder[]> {\n    return this.client.get('/api/v1/rootfolder')\n  }\n\n  async getById(id: number): Promise<RootFolder> {\n    return this.client.get(`/api/v1/rootfolder/${id}`)\n  }\n\n  async create(rootFolder: Omit<RootFolder, 'id'>): Promise<RootFolder> {\n    return this.client.post('/api/v1/rootfolder', rootFolder)\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v1/rootfolder/${id}`)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { PaginationOptions } from '../../core/types.js'\nimport type { AlbumPagingResource } from '../types.js'\n\nexport interface GetWantedOptions extends PaginationOptions {\n  includeArtist?: boolean\n  monitored?: boolean\n}\n\nexport class WantedResource {\n  constructor(private client: ClientMethods) {}\n\n  async getMissing(options?: GetWantedOptions): Promise<AlbumPagingResource> {\n    return this.client.get('/api/v1/wanted/missing', options)\n  }\n\n  async getCutoffUnmet(options?: GetWantedOptions): Promise<AlbumPagingResource> {\n    return this.client.get('/api/v1/wanted/cutoff', options)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { SystemResource, Health, DiskSpace, Task, Backup, LogFile, Update, LogPagingResource, SortDirection } from '../types.js'\n\nexport class SystemInfoResource {\n  constructor(private client: ClientMethods) {}\n\n  /**\n   * Get system status information.\n   * Alias for getStatus() for consistency with Sonarr/Radarr SDK.\n   */\n  async get(): Promise<SystemResource> {\n    return this.getStatus()\n  }\n\n  async getStatus(): Promise<SystemResource> {\n    return this.client.get('/api/v1/system/status')\n  }\n\n  async ping(): Promise<{ status: string }> {\n    return this.client.get('/ping')\n  }\n\n  async restart(): Promise<void> {\n    return this.client.post('/api/v1/system/restart')\n  }\n\n  async shutdown(): Promise<void> {\n    return this.client.post('/api/v1/system/shutdown')\n  }\n}\n\nexport class HealthResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<Health[]> {\n    return this.client.get('/api/v1/health')\n  }\n}\n\nexport class DiskSpaceResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<DiskSpace[]> {\n    return this.client.get('/api/v1/diskspace')\n  }\n}\n\nexport class TaskResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Task[]> {\n    return this.client.get('/api/v1/system/task')\n  }\n\n  async getById(id: number): Promise<Task> {\n    return this.client.get(`/api/v1/system/task/${id}`)\n  }\n}\n\nexport class BackupResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<Backup[]> {\n    return this.client.get('/api/v1/system/backup')\n  }\n\n  async delete(id: number): Promise<void> {\n    return this.client.delete(`/api/v1/system/backup/${id}`)\n  }\n\n  async restore(id: number): Promise<void> {\n    return this.client.post(`/api/v1/system/backup/restore/${id}`)\n  }\n}\n\nexport interface GetLogOptions {\n  page?: number\n  pageSize?: number\n  sortKey?: string\n  sortDirection?: SortDirection\n  level?: string\n  [key: string]: unknown\n}\n\nexport class LogResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: GetLogOptions): Promise<LogPagingResource> {\n    return this.client.get('/api/v1/log', options)\n  }\n}\n\nexport class LogFileResource {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<LogFile[]> {\n    return this.client.get('/api/v1/log/file')\n  }\n\n  async getUpdateLogs(): Promise<LogFile[]> {\n    return this.client.get('/api/v1/log/file/update')\n  }\n}\n\nexport class UpdateResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(): Promise<Update[]> {\n    return this.client.get('/api/v1/update')\n  }\n}\n","import { BaseClient, type ClientConfig } from '../core/index.js'\nimport { ArtistResource } from './resources/artist.js'\nimport { AlbumResource } from './resources/album.js'\nimport { TrackResource, TrackFileResource } from './resources/track.js'\nimport { CalendarResource } from './resources/calendar.js'\nimport { CommandResource_ } from './resources/command.js'\nimport { QueueResource } from './resources/queue.js'\nimport { HistoryResource } from './resources/history.js'\nimport { ManualImportResource } from './resources/manualImport.js'\nimport { QualityProfileResource, QualityDefinitionResource } from './resources/qualityProfile.js'\nimport { MetadataProfileResource } from './resources/metadataProfile.js'\nimport { TagResource, TagDetailsResource } from './resources/tag.js'\nimport { RootFolderResource } from './resources/rootFolder.js'\nimport { WantedResource } from './resources/wanted.js'\nimport { SystemInfoResource, HealthResource, DiskSpaceResource, TaskResource, BackupResource, LogResource, LogFileResource, UpdateResource } from './resources/system.js'\n\nexport class LidarrClient extends BaseClient {\n  public readonly artist: ArtistResource\n  public readonly album: AlbumResource\n  public readonly track: TrackResource\n  public readonly trackFile: TrackFileResource\n  public readonly calendar: CalendarResource\n  public readonly command: CommandResource_\n  public readonly queue: QueueResource\n  public readonly history: HistoryResource\n  public readonly manualImport: ManualImportResource\n  public readonly qualityProfile: QualityProfileResource\n  public readonly qualityDefinition: QualityDefinitionResource\n  public readonly metadataProfile: MetadataProfileResource\n  public readonly tag: TagResource\n  public readonly tagDetails: TagDetailsResource\n  public readonly rootFolder: RootFolderResource\n  public readonly wanted: WantedResource\n  public readonly system: SystemInfoResource\n  public readonly health: HealthResource\n  public readonly diskSpace: DiskSpaceResource\n  public readonly task: TaskResource\n  public readonly backup: BackupResource\n  public readonly log: LogResource\n  public readonly logFile: LogFileResource\n  public readonly update: UpdateResource\n\n  constructor(config: ClientConfig) {\n    super(config)\n\n    this.artist = new ArtistResource(this)\n    this.album = new AlbumResource(this)\n    this.track = new TrackResource(this)\n    this.trackFile = new TrackFileResource(this)\n    this.calendar = new CalendarResource(this)\n    this.command = new CommandResource_(this)\n    this.queue = new QueueResource(this)\n    this.history = new HistoryResource(this)\n    this.manualImport = new ManualImportResource(this)\n    this.qualityProfile = new QualityProfileResource(this)\n    this.qualityDefinition = new QualityDefinitionResource(this)\n    this.metadataProfile = new MetadataProfileResource(this)\n    this.tag = new TagResource(this)\n    this.tagDetails = new TagDetailsResource(this)\n    this.rootFolder = new RootFolderResource(this)\n    this.wanted = new WantedResource(this)\n    this.system = new SystemInfoResource(this)\n    this.health = new HealthResource(this)\n    this.diskSpace = new DiskSpaceResource(this)\n    this.task = new TaskResource(this)\n    this.backup = new BackupResource(this)\n    this.log = new LogResource(this)\n    this.logFile = new LogFileResource(this)\n    this.update = new UpdateResource(this)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\r\nimport type { Author, AuthorEditor } from '../types.js'\r\n\r\nexport interface GetAuthorOptions {\r\n  includeMonitored?: boolean\r\n}\r\n\r\nexport interface DeleteAuthorOptions {\r\n  deleteFiles?: boolean\r\n  addImportListExclusion?: boolean\r\n}\r\n\r\nexport class AuthorResource {\r\n  constructor(private client: ClientMethods) {}\r\n\r\n  async getAll(options?: GetAuthorOptions): Promise<Author[]> {\r\n    const params = new URLSearchParams()\r\n    if (options?.includeMonitored !== undefined) {\r\n      params.set('includeMonitored', String(options.includeMonitored))\r\n    }\r\n    const query = params.toString()\r\n    return this.client.get(`/api/v1/author${query ? `?${query}` : ''}`)\r\n  }\r\n\r\n  async getById(id: number): Promise<Author> {\r\n    return this.client.get(`/api/v1/author/${id}`)\r\n  }\r\n\r\n  async create(author: Omit<Author, 'id'>): Promise<Author> {\r\n    return this.client.post('/api/v1/author', author)\r\n  }\r\n\r\n  async update(id: number, author: Partial<Author> & { id: number }, moveFiles = false): Promise<Author> {\r\n    const params = new URLSearchParams()\r\n    if (moveFiles) params.set('moveFiles', 'true')\r\n    const query = params.toString()\r\n    return this.client.put(`/api/v1/author/${id}${query ? `?${query}` : ''}`, author)\r\n  }\r\n\r\n  async delete(id: number, options?: DeleteAuthorOptions): Promise<void> {\r\n    const params = new URLSearchParams()\r\n    if (options?.deleteFiles) params.set('deleteFiles', 'true')\r\n    if (options?.addImportListExclusion) params.set('addImportListExclusion', 'true')\r\n    const query = params.toString()\r\n    return this.client.delete(`/api/v1/author/${id}${query ? `?${query}` : ''}`)\r\n  }\r\n\r\n  async lookup(term: string): Promise<Author[]> {\r\n    return this.client.get(`/api/v1/author/lookup?term=${encodeURIComponent(term)}`)\r\n  }\r\n\r\n  async bulkEdit(resource: AuthorEditor): Promise<Author[]> {\r\n    return this.client.put('/api/v1/author/editor', resource)\r\n  }\r\n\r\n  async bulkDelete(authorIds: number[], options?: DeleteAuthorOptions): Promise<void> {\r\n    return this.client.delete('/api/v1/author/editor', {\r\n      authorIds,\r\n      deleteFiles: options?.deleteFiles,\r\n      addImportListExclusion: options?.addImportListExclusion\r\n    })\r\n  }\r\n}\r\n","import type { ClientMethods } from '../../core/resource.js'\r\nimport type { Book, BookEditor, BooksMonitored } from '../types.js'\r\n\r\nexport interface GetBookOptions {\r\n  authorId?: number\r\n  bookIds?: number[]\r\n  titleSlug?: string\r\n  includeAllAuthorBooks?: boolean\r\n}\r\n\r\nexport interface DeleteBookOptions {\r\n  deleteFiles?: boolean\r\n  addImportListExclusion?: boolean\r\n}\r\n\r\nexport class BookResource {\r\n  constructor(private client: ClientMethods) {}\r\n\r\n  async getAll(options?: GetBookOptions): Promise<Book[]> {\r\n    const params = new URLSearchParams()\r\n    if (options?.authorId !== undefined) params.set('authorId', String(options.authorId))\r\n    if (options?.bookIds?.length) {\r\n      options.bookIds.forEach(id => params.append('bookIds', String(id)))\r\n    }\r\n    if (options?.titleSlug) params.set('titleSlug', options.titleSlug)\r\n    if (options?.includeAllAuthorBooks !== undefined) {\r\n      params.set('includeAllAuthorBooks', String(options.includeAllAuthorBooks))\r\n    }\r\n    const query = params.toString()\r\n    return this.client.get(`/api/v1/book${query ? `?${query}` : ''}`)\r\n  }\r\n\r\n  async getById(id: number): Promise<Book> {\r\n    return this.client.get(`/api/v1/book/${id}`)\r\n  }\r\n\r\n  async getByAuthorId(authorId: number): Promise<Book[]> {\r\n    return this.getAll({ authorId })\r\n  }\r\n\r\n  async create(book: Omit<Book, 'id'>): Promise<Book> {\r\n    return this.client.post('/api/v1/book', book)\r\n  }\r\n\r\n  async update(id: number, book: Partial<Book> & { id: number }): Promise<Book> {\r\n    return this.client.put(`/api/v1/book/${id}`, book)\r\n  }\r\n\r\n  async delete(id: number, options?: DeleteBookOptions): Promise<void> {\r\n    const params = new URLSearchParams()\r\n    if (options?.deleteFiles) params.set('deleteFiles', 'true')\r\n    if (options?.addImportListExclusion) params.set('addImportListExclusion', 'true')\r\n    const query = params.toString()\r\n    return this.client.delete(`/api/v1/book/${id}${query ? `?${query}` : ''}`)\r\n  }\r\n\r\n  async lookup(term: string): Promise<Book[]> {\r\n    return this.client.get(`/api/v1/book/lookup?term=${encodeURIComponent(term)}`)\r\n  }\r\n\r\n  async bulkEdit(resource: BookEditor): Promise<Book[]> {\r\n    return this.client.put('/api/v1/book/editor', resource)\r\n  }\r\n\r\n  async bulkDelete(bookIds: number[], options?: DeleteBookOptions): Promise<void> {\r\n    return this.client.delete('/api/v1/book/editor', {\r\n      bookIds,\r\n      deleteFiles: options?.deleteFiles,\r\n      addImportListExclusion: options?.addImportListExclusion\r\n    })\r\n  }\r\n\r\n  async monitor(data: BooksMonitored): Promise<void> {\r\n    return this.client.put('/api/v1/book/monitor', data)\r\n  }\r\n}\r\n","import type { ClientMethods } from '../../core/resource.js'\r\nimport type { Edition } from '../types.js'\r\n\r\nexport class EditionResource {\r\n  constructor(private client: ClientMethods) {}\r\n\r\n  async getById(id: number): Promise<Edition> {\r\n    return this.client.get(`/api/v1/edition/${id}`)\r\n  }\r\n}\r\n","import type { ClientMethods } from '../../core/resource.js'\r\nimport type { BookFile, BookFileList } from '../types.js'\r\n\r\nexport interface GetBookFileOptions {\r\n  authorId?: number\r\n  bookId?: number\r\n  bookFileIds?: number[]\r\n  unmapped?: boolean\r\n}\r\n\r\nexport class BookFileResource {\r\n  constructor(private client: ClientMethods) {}\r\n\r\n  async getAll(options?: GetBookFileOptions): Promise<BookFile[]> {\r\n    const params = new URLSearchParams()\r\n    if (options?.authorId !== undefined) params.set('authorId', String(options.authorId))\r\n    if (options?.bookId !== undefined) params.set('bookId', String(options.bookId))\r\n    if (options?.bookFileIds?.length) {\r\n      options.bookFileIds.forEach(id => params.append('bookFileIds', String(id)))\r\n    }\r\n    if (options?.unmapped !== undefined) params.set('unmapped', String(options.unmapped))\r\n    const query = params.toString()\r\n    return this.client.get(`/api/v1/bookfile${query ? `?${query}` : ''}`)\r\n  }\r\n\r\n  async getById(id: number): Promise<BookFile> {\r\n    return this.client.get(`/api/v1/bookfile/${id}`)\r\n  }\r\n\r\n  async update(id: number, bookFile: Partial<BookFile> & { id: number }): Promise<BookFile> {\r\n    return this.client.put(`/api/v1/bookfile/${id}`, bookFile)\r\n  }\r\n\r\n  async bulkUpdate(bookFiles: BookFileList): Promise<BookFile[]> {\r\n    return this.client.put('/api/v1/bookfile/editor', bookFiles)\r\n  }\r\n\r\n  async delete(id: number): Promise<void> {\r\n    return this.client.delete(`/api/v1/bookfile/${id}`)\r\n  }\r\n\r\n  async bulkDelete(bookFileIds: number[]): Promise<void> {\r\n    return this.client.delete('/api/v1/bookfile/bulk', { bookFileIds })\r\n  }\r\n}\r\n","import type { ClientMethods } from '../../core/resource.js'\r\nimport type { Calendar } from '../types.js'\r\n\r\nexport interface GetCalendarOptions {\r\n  start?: string  // ISO date string\r\n  end?: string    // ISO date string\r\n  unmonitored?: boolean\r\n  includeAuthor?: boolean\r\n}\r\n\r\nexport class CalendarResource {\r\n  constructor(private client: ClientMethods) {}\r\n\r\n  async get(options?: GetCalendarOptions): Promise<Calendar[]> {\r\n    const params = new URLSearchParams()\r\n    if (options?.start) params.set('start', options.start)\r\n    if (options?.end) params.set('end', options.end)\r\n    if (options?.unmonitored !== undefined) params.set('unmonitored', String(options.unmonitored))\r\n    if (options?.includeAuthor !== undefined) params.set('includeAuthor', String(options.includeAuthor))\r\n    const query = params.toString()\r\n    return this.client.get(`/api/v1/calendar${query ? `?${query}` : ''}`)\r\n  }\r\n}\r\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { CommandResource, QualityModel } from '../types.js'\n\n/**\n * File entry for the ManualImport command\n */\nexport interface ReadarrManualImportFile {\n  path: string\n  folderName?: string\n  downloadId?: string\n  quality?: QualityModel\n  releaseGroup?: string\n  indexerFlags?: number\n  authorId?: number\n  bookId?: number\n  foreignEditionId?: string\n  disableReleaseSwitching?: boolean\n  replaceExistingFiles?: boolean\n}\n\nexport type ReadarrCommand =\n  | { name: 'RefreshAuthor'; authorId?: number }\n  | { name: 'RefreshBook'; bookId?: number }\n  | { name: 'RenameAuthor'; authorIds: number[] }\n  | { name: 'RenameFiles'; authorId: number; files: number[] }\n  | { name: 'RescanFolders' }\n  | { name: 'RssSync' }\n  | { name: 'BookSearch'; bookIds: number[] }\n  | { name: 'AuthorSearch'; authorId: number }\n  | { name: 'MissingBookSearch'; filterKey?: string; filterValue?: string }\n  | { name: 'CutoffUnmetBookSearch'; filterKey?: string; filterValue?: string }\n  | { name: 'RetagAuthor'; authorId: number }\n  | { name: 'RetagFiles'; authorId: number; files: number[] }\n  | { name: 'ApplicationUpdateCheck' }\n  | { name: 'Backup' }\n  | { name: 'RefreshMonitoredDownloads' }\n  | { name: 'CheckHealth' }\n  | { name: 'CleanUpRecycleBin' }\n  | { name: 'ClearBlocklist' }\n  | { name: 'MessagingCleanup' }\n  | { name: 'ImportListSync' }\n  | { name: 'DownloadedBooksScan'; path?: string; downloadClientId?: string; importMode?: 'Auto' | 'Move' | 'Copy' }\n  | { name: 'ManualImport'; files: ReadarrManualImportFile[]; importMode?: 'Auto' | 'Move' | 'Copy' }\n\nexport class CommandResource_ {\n  constructor(private client: ClientMethods) {}\n\n  async getAll(): Promise<CommandResource[]> {\n    return this.client.get('/api/v1/command')\n  }\n\n  async getById(id: number): Promise<CommandResource> {\n    return this.client.get(`/api/v1/command/${id}`)\n  }\n\n  async execute(command: ReadarrCommand): Promise<CommandResource> {\n    return this.client.post('/api/v1/command', command)\n  }\n\n  async cancel(id: number): Promise<void> {\n    return this.client.delete(`/api/v1/command/${id}`)\n  }\n\n  // Convenience methods\n  async refreshAuthor(authorId?: number): Promise<CommandResource> {\n    return this.execute({ name: 'RefreshAuthor', authorId })\n  }\n\n  async refreshBook(bookId?: number): Promise<CommandResource> {\n    return this.execute({ name: 'RefreshBook', bookId })\n  }\n\n  async rescanFolders(): Promise<CommandResource> {\n    return this.execute({ name: 'RescanFolders' })\n  }\n\n  async authorSearch(authorId: number): Promise<CommandResource> {\n    return this.execute({ name: 'AuthorSearch', authorId })\n  }\n\n  async bookSearch(bookIds: number[]): Promise<CommandResource> {\n    return this.execute({ name: 'BookSearch', bookIds })\n  }\n\n  async missingBookSearch(filterKey?: string, filterValue?: string): Promise<CommandResource> {\n    return this.execute({ name: 'MissingBookSearch', filterKey, filterValue })\n  }\n\n  async rssSync(): Promise<CommandResource> {\n    return this.execute({ name: 'RssSync' })\n  }\n\n  async backup(): Promise<CommandResource> {\n    return this.execute({ name: 'Backup' })\n  }\n\n  async clearBlocklist(): Promise<CommandResource> {\n    return this.execute({ name: 'ClearBlocklist' })\n  }\n\n  async downloadedBooksScan(options?: { path?: string; downloadClientId?: string; importMode?: 'Auto' | 'Move' | 'Copy' }): Promise<CommandResource> {\n    return this.execute({ name: 'DownloadedBooksScan', ...options })\n  }\n\n  async manualImport(files: ReadarrManualImportFile[], importMode?: 'Auto' | 'Move' | 'Copy'): Promise<CommandResource> {\n    return this.execute({ name: 'ManualImport', files, importMode })\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { PaginationOptions } from '../../core/types.js'\nimport type { Queue, QueueStatus, QueuePagingResource } from '../types.js'\n\nexport interface GetQueueOptions extends PaginationOptions {\n  includeUnknownAuthorItems?: boolean\n  includeAuthor?: boolean\n  includeBook?: boolean\n  authorIds?: number[]\n  bookIds?: number[]\n  protocol?: string\n  quality?: number[]\n}\n\nexport class QueueResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: GetQueueOptions): Promise<QueuePagingResource> {\n    const params = new URLSearchParams()\n    if (options?.page !== undefined) params.set('page', String(options.page))\n    if (options?.pageSize !== undefined) params.set('pageSize', String(options.pageSize))\n    if (options?.sortKey) params.set('sortKey', options.sortKey)\n    if (options?.sortDirection) params.set('sortDirection', options.sortDirection)\n    if (options?.includeUnknownAuthorItems !== undefined) {\n      params.set('includeUnknownAuthorItems', String(options.includeUnknownAuthorItems))\n    }\n    if (options?.includeAuthor !== undefined) params.set('includeAuthor', String(options.includeAuthor))\n    if (options?.includeBook !== undefined) params.set('includeBook', String(options.includeBook))\n    if (options?.authorIds?.length) {\n      options.authorIds.forEach(id => params.append('authorIds', String(id)))\n    }\n    if (options?.bookIds?.length) {\n      options.bookIds.forEach(id => params.append('bookIds', String(id)))\n    }\n    if (options?.protocol) params.set('protocol', options.protocol)\n    if (options?.quality?.length) {\n      options.quality.forEach(q => params.append('quality', String(q)))\n    }\n    const query = params.toString()\n    return this.client.get(`/api/v1/queue${query ? `?${query}` : ''}`)\n  }\n\n  async getById(id: number): Promise<Queue> {\n    return this.client.get(`/api/v1/queue/${id}`)\n  }\n\n  async getStatus(): Promise<QueueStatus> {\n    return this.client.get('/api/v1/queue/status')\n  }\n\n  async delete(id: number, options?: { removeFromClient?: boolean; blocklist?: boolean; skipRedownload?: boolean; changeCategory?: boolean }): Promise<void> {\n    const params = new URLSearchParams()\n    if (options?.removeFromClient !== undefined) params.set('removeFromClient', String(options.removeFromClient))\n    if (options?.blocklist !== undefined) params.set('blocklist', String(options.blocklist))\n    if (options?.skipRedownload !== undefined) params.set('skipRedownload', String(options.skipRedownload))\n    if (options?.changeCategory !== undefined) params.set('changeCategory', String(options.changeCategory))\n    const query = params.toString()\n    return this.client.delete(`/api/v1/queue/${id}${query ? `?${query}` : ''}`)\n  }\n\n  async bulkDelete(ids: number[], options?: { removeFromClient?: boolean; blocklist?: boolean; skipRedownload?: boolean; changeCategory?: boolean }): Promise<void> {\n    const params = new URLSearchParams()\n    if (options?.removeFromClient !== undefined) params.set('removeFromClient', String(options.removeFromClient))\n    if (options?.blocklist !== undefined) params.set('blocklist', String(options.blocklist))\n    if (options?.skipRedownload !== undefined) params.set('skipRedownload', String(options.skipRedownload))\n    if (options?.changeCategory !== undefined) params.set('changeCategory', String(options.changeCategory))\n    const query = params.toString()\n    return this.client.delete(`/api/v1/queue/bulk${query ? `?${query}` : ''}`, { ids })\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { PaginationOptions } from '../../core/types.js'\nimport type { History, HistoryPagingResource, EntityHistoryEventType } from '../types.js'\n\n// Numeric values pinned to upstream Readarr enum\n// (src/NzbDrone.Core/History/EntityHistory.cs — EntityHistoryEventType).\n// The .NET model binder rejects the string form even though the OpenAPI\n// spec declares it; numeric values are stable across releases.\nconst ENTITY_HISTORY_EVENT_TYPE_VALUES = {\n  unknown: 0,\n  grabbed: 1,\n  bookFileImported: 3,\n  downloadFailed: 4,\n  bookFileDeleted: 5,\n  bookFileRenamed: 6,\n  bookImportIncomplete: 7,\n  downloadImported: 8,\n  bookFileRetagged: 9,\n  downloadIgnored: 10,\n} as const satisfies Record<EntityHistoryEventType, number>\n\nexport type EventTypeInput = EntityHistoryEventType | number\nexport type EventTypeFilter = EventTypeInput | EventTypeInput[]\n\nfunction encodeEventType(value: EventTypeInput): number\nfunction encodeEventType(value: EventTypeFilter): number | number[]\nfunction encodeEventType(value: EventTypeFilter | undefined): number | number[] | undefined\nfunction encodeEventType(value: EventTypeFilter | undefined): number | number[] | undefined {\n  if (value === undefined) return undefined\n  if (Array.isArray(value)) {\n    return value.map((v) => (typeof v === 'number' ? v : ENTITY_HISTORY_EVENT_TYPE_VALUES[v]))\n  }\n  return typeof value === 'number' ? value : ENTITY_HISTORY_EVENT_TYPE_VALUES[value]\n}\n\nfunction encodeEventTypeAsString(value: EventTypeInput | undefined): string | undefined {\n  if (value === undefined) return undefined\n  return String(typeof value === 'number' ? value : ENTITY_HISTORY_EVENT_TYPE_VALUES[value])\n}\n\nexport interface GetHistoryOptions extends PaginationOptions {\n  includeAuthor?: boolean\n  includeBook?: boolean\n  eventType?: EventTypeFilter\n  downloadId?: string\n  authorId?: number\n  bookId?: number\n}\n\nexport class HistoryResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: GetHistoryOptions): Promise<HistoryPagingResource> {\n    const params = new URLSearchParams()\n    if (options?.page !== undefined) params.set('page', String(options.page))\n    if (options?.pageSize !== undefined) params.set('pageSize', String(options.pageSize))\n    if (options?.sortKey) params.set('sortKey', options.sortKey)\n    if (options?.sortDirection) params.set('sortDirection', options.sortDirection)\n    if (options?.includeAuthor !== undefined) params.set('includeAuthor', String(options.includeAuthor))\n    if (options?.includeBook !== undefined) params.set('includeBook', String(options.includeBook))\n    if (options?.eventType !== undefined) {\n      const encoded = encodeEventType(options.eventType)\n      if (Array.isArray(encoded)) {\n        encoded.forEach((n) => params.append('eventType', String(n)))\n      } else if (encoded !== undefined) {\n        params.set('eventType', String(encoded))\n      }\n    }\n    if (options?.downloadId) params.set('downloadId', options.downloadId)\n    if (options?.authorId !== undefined) params.set('authorId', String(options.authorId))\n    if (options?.bookId !== undefined) params.set('bookId', String(options.bookId))\n    const query = params.toString()\n    return this.client.get(`/api/v1/history${query ? `?${query}` : ''}`)\n  }\n\n  async getByAuthorId(authorId: number): Promise<History[]> {\n    return this.client.get(`/api/v1/history/author?authorId=${authorId}`)\n  }\n\n  async markAsFailed(id: number): Promise<void> {\n    return this.client.post(`/api/v1/history/failed/${id}`, {})\n  }\n\n  async getSince(date: string, eventType?: EventTypeInput): Promise<History[]> {\n    const params = new URLSearchParams()\n    params.set('date', date)\n    const encoded = encodeEventTypeAsString(eventType)\n    if (encoded !== undefined) params.set('eventType', encoded)\n    return this.client.get(`/api/v1/history/since?${params.toString()}`)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { ManualImport, ManualImportUpdate } from '../types.js'\n\nexport interface GetManualImportOptions {\n  folder?: string\n  downloadId?: string\n  authorId?: number\n  bookId?: number\n  filterExistingFiles?: boolean\n  replaceExistingFiles?: boolean\n  [key: string]: unknown\n}\n\nexport class ManualImportResource {\n  constructor(private client: ClientMethods) {}\n\n  async get(options?: GetManualImportOptions): Promise<ManualImport[]> {\n    return this.client.get('/api/v1/manualimport', options)\n  }\n\n  async process(imports: ManualImportUpdate[]): Promise<void> {\n    return this.client.post('/api/v1/manualimport', imports)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\r\nimport type { QualityProfile, QualityDefinition } from '../types.js'\r\n\r\nexport class QualityProfileResource {\r\n  constructor(private client: ClientMethods) {}\r\n\r\n  async getAll(): Promise<QualityProfile[]> {\r\n    return this.client.get('/api/v1/qualityprofile')\r\n  }\r\n\r\n  async getById(id: number): Promise<QualityProfile> {\r\n    return this.client.get(`/api/v1/qualityprofile/${id}`)\r\n  }\r\n\r\n  async create(profile: Omit<QualityProfile, 'id'>): Promise<QualityProfile> {\r\n    return this.client.post('/api/v1/qualityprofile', profile)\r\n  }\r\n\r\n  async update(id: number, profile: QualityProfile): Promise<QualityProfile> {\r\n    return this.client.put(`/api/v1/qualityprofile/${id}`, profile)\r\n  }\r\n\r\n  async delete(id: number): Promise<void> {\r\n    return this.client.delete(`/api/v1/qualityprofile/${id}`)\r\n  }\r\n}\r\n\r\nexport class QualityDefinitionResource {\r\n  constructor(private client: ClientMethods) {}\r\n\r\n  async getAll(): Promise<QualityDefinition[]> {\r\n    return this.client.get('/api/v1/qualitydefinition')\r\n  }\r\n\r\n  async getById(id: number): Promise<QualityDefinition> {\r\n    return this.client.get(`/api/v1/qualitydefinition/${id}`)\r\n  }\r\n\r\n  async update(id: number, definition: QualityDefinition): Promise<QualityDefinition> {\r\n    return this.client.put(`/api/v1/qualitydefinition/${id}`, definition)\r\n  }\r\n\r\n  async updateAll(definitions: QualityDefinition[]): Promise<QualityDefinition[]> {\r\n    return this.client.put('/api/v1/qualitydefinition/update', definitions)\r\n  }\r\n}\r\n","import type { ClientMethods } from '../../core/resource.js'\r\nimport type { MetadataProfile } from '../types.js'\r\n\r\nexport class MetadataProfileResource {\r\n  constructor(private client: ClientMethods) {}\r\n\r\n  async getAll(): Promise<MetadataProfile[]> {\r\n    return this.client.get('/api/v1/metadataprofile')\r\n  }\r\n\r\n  async getById(id: number): Promise<MetadataProfile> {\r\n    return this.client.get(`/api/v1/metadataprofile/${id}`)\r\n  }\r\n\r\n  async create(profile: Omit<MetadataProfile, 'id'>): Promise<MetadataProfile> {\r\n    return this.client.post('/api/v1/metadataprofile', profile)\r\n  }\r\n\r\n  async update(id: number, profile: MetadataProfile): Promise<MetadataProfile> {\r\n    return this.client.put(`/api/v1/metadataprofile/${id}`, profile)\r\n  }\r\n\r\n  async delete(id: number): Promise<void> {\r\n    return this.client.delete(`/api/v1/metadataprofile/${id}`)\r\n  }\r\n}\r\n","import type { ClientMethods } from '../../core/resource.js'\r\nimport type { Tag, TagDetails } from '../types.js'\r\n\r\nexport class TagResource {\r\n  constructor(private client: ClientMethods) {}\r\n\r\n  async getAll(): Promise<Tag[]> {\r\n    return this.client.get('/api/v1/tag')\r\n  }\r\n\r\n  async getById(id: number): Promise<Tag> {\r\n    return this.client.get(`/api/v1/tag/${id}`)\r\n  }\r\n\r\n  async create(tag: Omit<Tag, 'id'>): Promise<Tag> {\r\n    return this.client.post('/api/v1/tag', tag)\r\n  }\r\n\r\n  async update(id: number, tag: Tag): Promise<Tag> {\r\n    return this.client.put(`/api/v1/tag/${id}`, tag)\r\n  }\r\n\r\n  async delete(id: number): Promise<void> {\r\n    return this.client.delete(`/api/v1/tag/${id}`)\r\n  }\r\n}\r\n\r\nexport class TagDetailsResource {\r\n  constructor(private client: ClientMethods) {}\r\n\r\n  async getAll(): Promise<TagDetails[]> {\r\n    return this.client.get('/api/v1/tag/detail')\r\n  }\r\n\r\n  async getById(id: number): Promise<TagDetails> {\r\n    return this.client.get(`/api/v1/tag/detail/${id}`)\r\n  }\r\n}\r\n","import type { ClientMethods } from '../../core/resource.js'\r\nimport type { RootFolder } from '../types.js'\r\n\r\nexport class RootFolderResource {\r\n  constructor(private client: ClientMethods) {}\r\n\r\n  async getAll(): Promise<RootFolder[]> {\r\n    return this.client.get('/api/v1/rootfolder')\r\n  }\r\n\r\n  async getById(id: number): Promise<RootFolder> {\r\n    return this.client.get(`/api/v1/rootfolder/${id}`)\r\n  }\r\n\r\n  async create(rootFolder: Omit<RootFolder, 'id'>): Promise<RootFolder> {\r\n    return this.client.post('/api/v1/rootfolder', rootFolder)\r\n  }\r\n\r\n  async delete(id: number): Promise<void> {\r\n    return this.client.delete(`/api/v1/rootfolder/${id}`)\r\n  }\r\n}\r\n","import type { ClientMethods } from '../../core/resource.js'\nimport type { PaginationOptions } from '../../core/types.js'\nimport type { BookPagingResource } from '../types.js'\n\nexport interface GetWantedOptions extends PaginationOptions {\n  includeAuthor?: boolean\n}\n\nexport class WantedResource {\n  constructor(private client: ClientMethods) {}\n\n  async getMissing(options?: GetWantedOptions): Promise<BookPagingResource> {\n    const params = new URLSearchParams()\n    if (options?.page !== undefined) params.set('page', String(options.page))\n    if (options?.pageSize !== undefined) params.set('pageSize', String(options.pageSize))\n    if (options?.sortKey) params.set('sortKey', options.sortKey)\n    if (options?.sortDirection) params.set('sortDirection', options.sortDirection)\n    if (options?.includeAuthor !== undefined) params.set('includeAuthor', String(options.includeAuthor))\n    const query = params.toString()\n    return this.client.get(`/api/v1/wanted/missing${query ? `?${query}` : ''}`)\n  }\n\n  async getCutoffUnmet(options?: GetWantedOptions): Promise<BookPagingResource> {\n    const params = new URLSearchParams()\n    if (options?.page !== undefined) params.set('page', String(options.page))\n    if (options?.pageSize !== undefined) params.set('pageSize', String(options.pageSize))\n    if (options?.sortKey) params.set('sortKey', options.sortKey)\n    if (options?.sortDirection) params.set('sortDirection', options.sortDirection)\n    if (options?.includeAuthor !== undefined) params.set('includeAuthor', String(options.includeAuthor))\n    const query = params.toString()\n    return this.client.get(`/api/v1/wanted/cutoff${query ? `?${query}` : ''}`)\n  }\n}\n","import type { ClientMethods } from '../../core/resource.js'\r\nimport type { SystemResource, Health, DiskSpace, Task, Backup, LogFile, Update, LogPagingResource, SortDirection } from '../types.js'\r\n\r\nexport class SystemInfoResource {\r\n  constructor(private client: ClientMethods) {}\r\n\r\n  /**\r\n   * Get system status information.\r\n   * Alias for getStatus() for consistency with Sonarr/Radarr SDK.\r\n   */\r\n  async get(): Promise<SystemResource> {\r\n    return this.getStatus()\r\n  }\r\n\r\n  async getStatus(): Promise<SystemResource> {\r\n    return this.client.get('/api/v1/system/status')\r\n  }\r\n}\r\n\r\nexport class HealthResource {\r\n  constructor(private client: ClientMethods) {}\r\n\r\n  async getAll(): Promise<Health[]> {\r\n    return this.client.get('/api/v1/health')\r\n  }\r\n}\r\n\r\nexport class DiskSpaceResource {\r\n  constructor(private client: ClientMethods) {}\r\n\r\n  async getAll(): Promise<DiskSpace[]> {\r\n    return this.client.get('/api/v1/diskspace')\r\n  }\r\n}\r\n\r\nexport class TaskResource {\r\n  constructor(private client: ClientMethods) {}\r\n\r\n  async getAll(): Promise<Task[]> {\r\n    return this.client.get('/api/v1/system/task')\r\n  }\r\n\r\n  async getById(id: number): Promise<Task> {\r\n    return this.client.get(`/api/v1/system/task/${id}`)\r\n  }\r\n}\r\n\r\nexport class BackupResource {\r\n  constructor(private client: ClientMethods) {}\r\n\r\n  async getAll(): Promise<Backup[]> {\r\n    return this.client.get('/api/v1/system/backup')\r\n  }\r\n\r\n  async delete(id: number): Promise<void> {\r\n    return this.client.delete(`/api/v1/system/backup/${id}`)\r\n  }\r\n\r\n  async restore(id: number): Promise<void> {\r\n    return this.client.post(`/api/v1/system/backup/restore/${id}`, {})\r\n  }\r\n\r\n  async upload(file: Blob | ArrayBuffer): Promise<void> {\r\n    // Note: Multipart upload - specific implementation may vary\r\n    return this.client.post('/api/v1/system/backup/restore/upload', file)\r\n  }\r\n}\r\n\r\nexport interface GetLogOptions {\r\n  page?: number\r\n  pageSize?: number\r\n  sortKey?: string\r\n  sortDirection?: SortDirection\r\n  level?: string\r\n}\r\n\r\nexport class LogResource {\r\n  constructor(private client: ClientMethods) {}\r\n\r\n  async get(options?: GetLogOptions): Promise<LogPagingResource> {\r\n    const params = new URLSearchParams()\r\n    if (options?.page !== undefined) params.set('page', String(options.page))\r\n    if (options?.pageSize !== undefined) params.set('pageSize', String(options.pageSize))\r\n    if (options?.sortKey) params.set('sortKey', options.sortKey)\r\n    if (options?.sortDirection) params.set('sortDirection', options.sortDirection)\r\n    if (options?.level) params.set('level', options.level)\r\n    const query = params.toString()\r\n    return this.client.get(`/api/v1/log${query ? `?${query}` : ''}`)\r\n  }\r\n}\r\n\r\nexport class LogFileResource {\r\n  constructor(private client: ClientMethods) {}\r\n\r\n  async getAll(): Promise<LogFile[]> {\r\n    return this.client.get('/api/v1/log/file')\r\n  }\r\n\r\n  async getUpdateLogs(): Promise<LogFile[]> {\r\n    return this.client.get('/api/v1/log/file/update')\r\n  }\r\n}\r\n\r\nexport class UpdateResource {\r\n  constructor(private client: ClientMethods) {}\r\n\r\n  async getAll(): Promise<Update[]> {\r\n    return this.client.get('/api/v1/update')\r\n  }\r\n}\r\n","import { BaseClient, type ClientConfig } from '../core/index.js'\nimport { AuthorResource } from './resources/author.js'\nimport { BookResource } from './resources/book.js'\nimport { EditionResource } from './resources/edition.js'\nimport { BookFileResource } from './resources/bookFile.js'\nimport { CalendarResource } from './resources/calendar.js'\nimport { CommandResource_ } from './resources/command.js'\nimport { QueueResource } from './resources/queue.js'\nimport { HistoryResource } from './resources/history.js'\nimport { ManualImportResource } from './resources/manualImport.js'\nimport { QualityProfileResource, QualityDefinitionResource } from './resources/qualityProfile.js'\nimport { MetadataProfileResource } from './resources/metadataProfile.js'\nimport { TagResource, TagDetailsResource } from './resources/tag.js'\nimport { RootFolderResource } from './resources/rootFolder.js'\nimport { WantedResource } from './resources/wanted.js'\nimport {\n  SystemInfoResource,\n  HealthResource,\n  DiskSpaceResource,\n  TaskResource,\n  BackupResource,\n  LogResource,\n  LogFileResource,\n  UpdateResource\n} from './resources/system.js'\n\nexport class ReadarrClient extends BaseClient {\n  public readonly author: AuthorResource\n  public readonly book: BookResource\n  public readonly edition: EditionResource\n  public readonly bookFile: BookFileResource\n  public readonly calendar: CalendarResource\n  public readonly command: CommandResource_\n  public readonly queue: QueueResource\n  public readonly history: HistoryResource\n  public readonly manualImport: ManualImportResource\n  public readonly qualityProfile: QualityProfileResource\n  public readonly qualityDefinition: QualityDefinitionResource\n  public readonly metadataProfile: MetadataProfileResource\n  public readonly tag: TagResource\n  public readonly tagDetails: TagDetailsResource\n  public readonly rootFolder: RootFolderResource\n  public readonly wanted: WantedResource\n  public readonly system: SystemInfoResource\n  public readonly health: HealthResource\n  public readonly diskSpace: DiskSpaceResource\n  public readonly task: TaskResource\n  public readonly backup: BackupResource\n  public readonly log: LogResource\n  public readonly logFile: LogFileResource\n  public readonly update: UpdateResource\n\n  constructor(config: ClientConfig) {\n    super(config)\n\n    this.author = new AuthorResource(this)\n    this.book = new BookResource(this)\n    this.edition = new EditionResource(this)\n    this.bookFile = new BookFileResource(this)\n    this.calendar = new CalendarResource(this)\n    this.command = new CommandResource_(this)\n    this.queue = new QueueResource(this)\n    this.history = new HistoryResource(this)\n    this.manualImport = new ManualImportResource(this)\n    this.qualityProfile = new QualityProfileResource(this)\n    this.qualityDefinition = new QualityDefinitionResource(this)\n    this.metadataProfile = new MetadataProfileResource(this)\n    this.tag = new TagResource(this)\n    this.tagDetails = new TagDetailsResource(this)\n    this.rootFolder = new RootFolderResource(this)\n    this.wanted = new WantedResource(this)\n    this.system = new SystemInfoResource(this)\n    this.health = new HealthResource(this)\n    this.diskSpace = new DiskSpaceResource(this)\n    this.task = new TaskResource(this)\n    this.backup = new BackupResource(this)\n    this.log = new LogResource(this)\n    this.logFile = new LogFileResource(this)\n    this.update = new UpdateResource(this)\n  }\n}\n"]}