<?xml version="1.0"?>
<doc>
    <assembly>
        <name>PDM.App.Core</name>
    </assembly>
    <members>
        <member name="T:PDM.App.AppHost">
            <summary>
            The composition root for the desktop app. Owns the singletons the UI needs: settings
            store, HTTP stack, download engine, repository, and manager. Kept as a small hand-rolled
            container to avoid pulling in a DI framework for a leaf application.
            </summary>
        </member>
        <member name="P:PDM.App.AppHost.ArchiveExtractor">
            <summary>Extracts downloaded archives via the bundled 7-Zip engine (see <see cref="T:PDM.Platform.IArchiveExtractor"/>).</summary>
        </member>
        <member name="F:PDM.App.AppHost.UnlicensedMaxConnections">
            <summary>
            Parallel-connection ceiling for installs without a functional license (Expired/Invalid).
            Downloads still run, but accelerated multi-connection downloading is a licensed feature, so an
            unlicensed install is limited to this many connections per download.
            </summary>
        </member>
        <member name="F:PDM.App.AppHost.UnlicensedMaxSimultaneousDownloads">
            <summary>How many downloads an unlicensed/expired install may transfer at the same time.</summary>
        </member>
        <member name="P:PDM.App.AppHost.IsLimitedMode">
            <summary>
            True when the install is in the reduced "free/limited" mode (no functional license), so the
            UI can show gentle upgrade messaging and explain why downloads are throttled/queued.
            </summary>
        </member>
        <member name="M:PDM.App.AppHost.ApplyLicenseConnectionPolicy">
             <summary>
             Applies the license-based download policy to the manager. The caps are taken from the
             current snapshot's <see cref="T:PDM.Licensing.LicenseEntitlements"/>, which for an activated/grace license
             are derived from the <b>server-signed token</b> (C1) — not from a local boolean. A
             <see langword="null"/> cap means "no client-imposed limit" (full speed); the free/expired
             tier resolves to the throttled defaults baked into <see cref="F:PDM.Licensing.LicenseEntitlements.Free"/>.
            
             <para>Security note: because the premium throughput numbers live inside a signed token,
             patching an "is licensed" flag no longer unlocks accelerated downloading — the numbers
             themselves cannot be fabricated without the server's private key.</para>
             </summary>
        </member>
        <member name="P:PDM.App.AppHost.LoggerFactory">
            <summary>Root logger factory used to obtain scoped loggers.</summary>
        </member>
        <member name="P:PDM.App.AppHost.Notifications">
            <summary>
            User-visible notification surface, supplied by the platform head (WPF tray balloon today,
            an Avalonia notifier in the cross-platform head). Disposed with the host when disposable.
            </summary>
        </member>
        <member name="P:PDM.App.AppHost.LicenseService">
            <summary>License orchestrator (trial, activation, validation).</summary>
        </member>
        <member name="P:PDM.App.AppHost.License">
            <summary>
            Snapshot of the license; refresh via <see cref="P:PDM.App.AppHost.LicenseService"/>. Assigning it re-applies the
            connection policy so activating or letting a license lapse takes effect on the next download.
            </summary>
        </member>
        <member name="P:PDM.App.AppHost.Settings">
            <summary>Live application settings.</summary>
        </member>
        <member name="P:PDM.App.AppHost.SettingsStore">
            <summary>Store used to persist edits to <see cref="P:PDM.App.AppHost.Settings"/>.</summary>
        </member>
        <member name="P:PDM.App.AppHost.HttpClientProvider">
            <summary>Owns the shared <see cref="T:System.Net.Http.HttpClient"/> used for all downloads.</summary>
        </member>
        <member name="P:PDM.App.AppHost.Repository">
            <summary>Long-term catalog of downloads.</summary>
        </member>
        <member name="P:PDM.App.AppHost.DownloadManager">
            <summary>Manager the UI binds to.</summary>
        </member>
        <member name="P:PDM.App.AppHost.RefreshCoordinator">
            <summary>
            Coordinates "refresh this download's link from the browser": the UI arms it for a stalled
            download and the browser listener correlates the next capture against it.
            </summary>
        </member>
        <member name="M:PDM.App.AppHost.CreateAsync(PDM.Platform.INotifier,PDM.Licensing.ILicenseStore,PDM.Platform.IArchiveExtractor,System.Threading.CancellationToken)">
            <summary>
            Builds and initializes all singletons. The two platform-specific dependencies are injected by
            the head that owns the OS: <paramref name="notifications"/> (the concrete <see cref="T:PDM.Platform.INotifier"/>)
            and <paramref name="licenseStore"/> (e.g. the Windows DPAPI-backed store). Everything else is
            platform-neutral and built here, so every UI head shares one composition root.
            </summary>
        </member>
        <member name="M:PDM.App.AppHost.RunSecurityMonitorAsync(PDM.Infrastructure.DownloadManager,Microsoft.Extensions.Logging.ILogger)">
            <summary>
            Background anti-tamper monitor (C3). Runs well after launch with randomized delays so its
            response is decoupled from the check itself — this is what actually frustrates casual
            patching, more than the check's mere presence. Debugger presence is treated as
            friction/telemetry only (never a hard block, to avoid punishing legitimate power users); a
            <b>definitely-tampered signed binary</b> is quietly clamped to the free tier. Never throws.
            </summary>
        </member>
        <member name="M:PDM.App.AppHost.DisposeAsync">
            <inheritdoc />
        </member>
        <member name="T:PDM.App.Formatting">
            <summary>Human-readable formatters for the UI.</summary>
        </member>
        <member name="M:PDM.App.Formatting.FormatBytes(System.Nullable{System.Int64})">
            <summary>Formats a byte count, e.g. 15.4 MB. Handles null (unknown).</summary>
        </member>
        <member name="M:PDM.App.Formatting.FormatRate(System.Double)">
            <summary>Formats a byte rate, e.g. 3.2 MB/s.</summary>
        </member>
        <member name="M:PDM.App.Formatting.FormatEta(System.Nullable{System.TimeSpan})">
            <summary>Formats an ETA, e.g. 00:03:15 or "—" when unknown.</summary>
        </member>
        <member name="T:PDM.App.IAppHost">
            <summary>
            The composition-root contract the shared ViewModels and services depend on. The concrete
            implementation (<c>AppHost</c>) lives in the platform head, which owns process-lifetime singletons
            and constructs the head-specific pieces (e.g. the WPF/WinForms notifier). Depending on this
            interface — rather than the concrete host — keeps the shared layer free of any head/OS coupling.
            </summary>
        </member>
        <member name="P:PDM.App.IAppHost.LoggerFactory">
            <summary>Root logger factory used to obtain scoped loggers.</summary>
        </member>
        <member name="P:PDM.App.IAppHost.Notifications">
            <summary>User-visible notification surface (tray balloon / toast on the desktop head).</summary>
        </member>
        <member name="P:PDM.App.IAppHost.LicenseService">
            <summary>License orchestrator (trial, activation, validation).</summary>
        </member>
        <member name="P:PDM.App.IAppHost.License">
            <summary>Snapshot of the license; refreshed via <see cref="P:PDM.App.IAppHost.LicenseService"/>.</summary>
        </member>
        <member name="P:PDM.App.IAppHost.Settings">
            <summary>Live application settings.</summary>
        </member>
        <member name="P:PDM.App.IAppHost.SettingsStore">
            <summary>Store used to persist edits to <see cref="P:PDM.App.IAppHost.Settings"/>.</summary>
        </member>
        <member name="P:PDM.App.IAppHost.HttpClientProvider">
            <summary>Owns the shared <see cref="T:System.Net.Http.HttpClient"/> used for all downloads.</summary>
        </member>
        <member name="P:PDM.App.IAppHost.Repository">
            <summary>Long-term catalog of downloads.</summary>
        </member>
        <member name="P:PDM.App.IAppHost.DownloadManager">
            <summary>Manager the UI binds to.</summary>
        </member>
        <member name="P:PDM.App.IAppHost.RefreshCoordinator">
            <summary>Coordinates "refresh this download's link from the browser".</summary>
        </member>
        <member name="P:PDM.App.IAppHost.ArchiveExtractor">
            <summary>Extracts downloaded archives (ZIP/RAR/7z/…) via the bundled 7-Zip engine.</summary>
        </member>
        <member name="T:PDM.App.Services.DuplicateChoice">
            <summary>The button the user pressed on the duplicate-download prompt.</summary>
        </member>
        <member name="F:PDM.App.Services.DuplicateChoice.Primary">
            <summary>The primary (highlighted) action, e.g. "Download again" / "Continue existing".</summary>
        </member>
        <member name="F:PDM.App.Services.DuplicateChoice.Secondary">
            <summary>The secondary action, e.g. "Open existing" / "Start new" / "Show it".</summary>
        </member>
        <member name="F:PDM.App.Services.DuplicateChoice.Cancel">
            <summary>The prompt was cancelled or closed.</summary>
        </member>
        <member name="T:PDM.App.Services.DuplicatePromptCopy">
            <summary>The wording/buttons for a given duplicate situation.</summary>
            <param name="Title">Short headline, e.g. "Already downloaded".</param>
            <param name="Message">Explanatory body text (file name, sizes, path).</param>
            <param name="Primary">Label for the highlighted primary action.</param>
            <param name="Secondary">Label for the secondary action.</param>
        </member>
        <member name="M:PDM.App.Services.DuplicatePromptCopy.#ctor(System.String,System.String,System.String,System.String)">
            <summary>The wording/buttons for a given duplicate situation.</summary>
            <param name="Title">Short headline, e.g. "Already downloaded".</param>
            <param name="Message">Explanatory body text (file name, sizes, path).</param>
            <param name="Primary">Label for the highlighted primary action.</param>
            <param name="Secondary">Label for the secondary action.</param>
        </member>
        <member name="P:PDM.App.Services.DuplicatePromptCopy.Title">
            <summary>Short headline, e.g. "Already downloaded".</summary>
        </member>
        <member name="P:PDM.App.Services.DuplicatePromptCopy.Message">
            <summary>Explanatory body text (file name, sizes, path).</summary>
        </member>
        <member name="P:PDM.App.Services.DuplicatePromptCopy.Primary">
            <summary>Label for the highlighted primary action.</summary>
        </member>
        <member name="P:PDM.App.Services.DuplicatePromptCopy.Secondary">
            <summary>Label for the secondary action.</summary>
        </member>
        <member name="T:PDM.App.Services.IDuplicatePromptView">
            <summary>
            Presents the duplicate-download prompt and returns the user's choice. Implemented by the UI head
            (a modal window on the desktop) so the shared decision/action logic in <see cref="T:PDM.App.Services.DuplicatePrompt"/>
            stays free of any UI framework. Must be invoked on the UI thread.
            </summary>
        </member>
        <member name="M:PDM.App.Services.IDuplicatePromptView.ShowAsync(PDM.App.Services.DuplicatePromptCopy)">
            <summary>
            Shows the prompt with the given wording and completes with the user's chosen action. Async so
            the UI head can present a non-blocking modal (WPF wraps its synchronous dialog in a completed
            task; Avalonia awaits <c>Window.ShowDialog</c>).
            </summary>
        </member>
        <member name="T:PDM.App.Services.DuplicatePrompt">
             <summary>
             Shared logic for the "this download already exists" prompt, used by both the manual add flow and
             the browser-capture flow so they behave identically. The caller resolves the duplicate first (via
             <see cref="M:PDM.Infrastructure.DownloadManager.InspectForDuplicateAsync(System.Uri,System.String,System.String,System.Threading.CancellationToken)"/>) and passes it in; this builds the right
             wording, asks the injected <see cref="T:PDM.App.Services.IDuplicatePromptView"/> for the user's choice, and carries
             it out, reusing the caller's probe for any new copy so a "download again / start new" never
             re-probes.
            
             <para>The prompt presentation is the head's concern (via <see cref="T:PDM.App.Services.IDuplicatePromptView"/>); the
             wording and the action taken for each <see cref="T:PDM.Infrastructure.DuplicateKind"/> live here so they are shared and
             testable without a UI.</para>
             </summary>
        </member>
        <member name="M:PDM.App.Services.DuplicatePrompt.DescribeFor(PDM.Infrastructure.DuplicateInfo)">
            <summary>
            Builds the prompt wording for <paramref name="dup"/>. Primary is the highlighted action:
            "Download again" (completed), "Continue existing" (partial), or "Start another copy"
            (in progress). Secondary is the alternative.
            </summary>
        </member>
        <member name="M:PDM.App.Services.DuplicatePrompt.HandleAsync(PDM.App.Services.IDuplicatePromptView,PDM.Infrastructure.DownloadManager,PDM.Infrastructure.DuplicateInfo,System.Uri,System.String,PDM.Core.Models.RemoteFileInfo,System.Action{System.Guid})">
            <param name="view">Presents the prompt and returns the user's choice.</param>
            <param name="manager">The download manager to act against.</param>
            <param name="dup">The already-resolved duplicate.</param>
            <param name="uri">The newly-requested URL.</param>
            <param name="referrer">Optional referrer to carry onto a newly-created copy.</param>
            <param name="probedInfo">Probe reused for a "download again / start new" add, to avoid re-probing.</param>
            <param name="reveal">Callback to reveal an existing download (row select / bring to front).</param>
        </member>
        <member name="M:PDM.App.Services.DuplicatePrompt.AddNumberedCopyAsync(PDM.Infrastructure.DownloadManager,System.Uri,System.String,PDM.Core.Models.RemoteFileInfo)">
            <summary>
            Adds the URL as a brand-new download, forcing a numbered copy (Rename) so it never collides
            with the existing file, and starting it immediately since the user explicitly asked for it.
            Reuses <paramref name="probedInfo"/> when available so no extra probe is performed.
            </summary>
        </member>
        <member name="T:PDM.App.Services.IDownloadPopup">
            <summary>
            Abstraction over a single download's popup window. Decouples <see cref="T:PDM.App.Services.PopupManager"/>
            from the concrete WPF <c>DownloadPopupWindow</c> so the manager's lifecycle and event-routing
            logic can be unit-tested with a headless fake implementation. Each instance is bound to exactly
            one download identified by <see cref="P:PDM.App.Services.IDownloadPopup.Id"/>, preserving the one-to-one popup/download mapping.
            </summary>
        </member>
        <member name="P:PDM.App.Services.IDownloadPopup.Id">
            <summary>
            The identifier of the download this popup is bound to. Used by <see cref="T:PDM.App.Services.PopupManager"/>
            to route progress and status events to the correct popup.
            </summary>
        </member>
        <member name="M:PDM.App.Services.IDownloadPopup.Activate">
            <summary>
            Brings the popup to the foreground. Used when an open is requested for a download that
            already has an open popup, instead of creating a second window.
            </summary>
        </member>
        <member name="M:PDM.App.Services.IDownloadPopup.Restore">
            <summary>
            Restores the popup from a minimized state to its normal window state.
            </summary>
        </member>
        <member name="M:PDM.App.Services.IDownloadPopup.Close">
            <summary>
            Closes the popup window. Closing never changes the bound download's status or interrupts
            its transfer; the download continues in the background.
            </summary>
        </member>
        <member name="M:PDM.App.Services.IDownloadPopup.ApplyProgress(PDM.Core.Models.DownloadProgress)">
            <summary>
            Applies the latest progress snapshot to the popup's bound view-model so the displayed
            progress, speed, and estimated time remaining reflect the most recent values.
            </summary>
            <param name="progress">The most recent progress snapshot for the bound download.</param>
        </member>
        <member name="M:PDM.App.Services.IDownloadPopup.NotifyStatusChanged">
            <summary>
            Refreshes the popup's status-derived state (control enablement and terminal-state
            affordances) after the bound download's status changes.
            </summary>
        </member>
        <member name="T:PDM.App.Services.IUiDispatcher">
            <summary>
            Marshals an action onto the UI thread. The shared ViewModels and services use this instead of a
            concrete UI framework's dispatcher so they can run under WPF today and Avalonia later (and inline
            in headless tests). Implementations must run the action inline when the caller is
            already on the UI thread (or when there is no UI thread, e.g. tests) and otherwise post it.
            </summary>
        </member>
        <member name="M:PDM.App.Services.IUiDispatcher.Post(System.Action)">
            <summary>Runs <paramref name="action"/> on the UI thread — inline if already on it, else posted.</summary>
        </member>
        <member name="T:PDM.App.Services.InlineUiDispatcher">
            <summary>
            An <see cref="T:PDM.App.Services.IUiDispatcher"/> that always runs the action inline on the calling thread. Used in
            headless tests and any context without a real UI thread, matching the pre-migration behaviour
            where a null <c>Application.Current</c> caused handlers to run inline.
            </summary>
        </member>
        <member name="F:PDM.App.Services.InlineUiDispatcher.Instance">
            <summary>Shared instance.</summary>
        </member>
        <member name="M:PDM.App.Services.InlineUiDispatcher.Post(System.Action)">
            <inheritdoc />
        </member>
        <member name="T:PDM.App.Services.Logging">
            <summary>
            Configures Serilog with a rolling file sink under <see cref="P:PDM.Core.Util.AppPaths.LogsDirectory"/>
            and returns an <see cref="T:Microsoft.Extensions.Logging.ILoggerFactory"/> the rest of the app can use through the
            <c>Microsoft.Extensions.Logging</c> abstractions. A single file per day is kept for
            a bounded window so logs never grow unbounded on long-lived installs.
            </summary>
        </member>
        <member name="M:PDM.App.Services.Logging.Configure">
            <summary>
            Builds an <see cref="T:Microsoft.Extensions.Logging.ILoggerFactory"/> writing to file + console. Must be disposed on shutdown.
            </summary>
        </member>
        <member name="T:PDM.App.Services.PopupManager">
             <summary>
             Owns the full per-download popup window lifecycle and the one-to-one mapping between a
             download <see cref="T:System.Guid"/> and its open <see cref="T:PDM.App.Services.IDownloadPopup"/>. It is the single
             choke point that subscribes to <see cref="T:PDM.Infrastructure.DownloadManager"/> events, marshals every handler
             onto the WPF dispatcher, and routes each event to the popup bound to the matching download.
            
             The window is created through an injected factory (<see cref="T:System.Func`2"/>) so the
             manager's lifecycle and routing logic can be exercised with a headless fake popup in tests,
             keeping the concrete <c>DownloadPopupWindow</c> as the production implementation.
            
             Non-destructive by design: the open path never calls into the transfer path, so a failure to
             create or show a popup logs and surfaces an error indication without ever interrupting the
             download (Requirement 1.7).
             </summary>
        </member>
        <member name="P:PDM.App.Services.PopupManager.OpenPopupCount">
            <summary>Number of popups currently open. Supports the ≥20 concurrent requirement (Req 6.6).</summary>
        </member>
        <member name="M:PDM.App.Services.PopupManager.Start">
            <summary>Subscribes to <see cref="T:PDM.Infrastructure.DownloadManager"/> events. Call once after construction.</summary>
        </member>
        <member name="M:PDM.App.Services.PopupManager.HasOpenPopup(System.Guid)">
            <summary>True when a popup is currently open for the given download.</summary>
        </member>
        <member name="M:PDM.App.Services.PopupManager.ShowPopupFor(System.Guid)">
            <summary>
            Reopens (or foregrounds) a popup for a download that currently has none. Invoked by the
            MainWindow "Show popup" control (Requirements 5.4, 5.5, 5.6).
            </summary>
            <remarks>
            When a popup is already open for the download it is brought to the foreground (Req 5.5).
            Otherwise the current <see cref="T:PDM.Infrastructure.ManagedDownload"/> is resolved from the authoritative
            <see cref="P:PDM.Infrastructure.DownloadManager.Downloads"/> collection and a fresh popup is opened bound to it,
            so a reopened background download reflects the current persisted progress/speed/ETA/status
            (Req 5.6). If the download id is not tracked by the manager, this is a no-op.
            </remarks>
        </member>
        <member name="M:PDM.App.Services.PopupManager.NotifyPopupClosed(System.Guid)">
            <summary>
            Releases the popup bound to <paramref name="downloadId"/> from the open map after its window
            has been closed. Invoked by <c>DownloadPopupWindow.OnClosing</c> via the injected close
            callback. Closing a popup never changes the bound download's status or interrupts its transfer
            — the download continues as a background download — and the id is kept in the known set so a
            popup can be reopened later through <see cref="M:PDM.App.Services.PopupManager.ShowPopupFor(System.Guid)"/> (Requirements 5.1, 5.2, 5.3).
            This never calls into the transfer path.
            </summary>
        </member>
        <member name="M:PDM.App.Services.PopupManager.Dispose">
            <summary>Unsubscribes from events and closes every tracked popup.</summary>
        </member>
        <member name="M:PDM.App.Services.PopupManager.OpenOrForeground(PDM.Infrastructure.ManagedDownload)">
            <summary>
            Opens a popup for the download, or brings the existing one to the foreground instead of
            creating a second window (Req 1.6). Window creation is wrapped so an open failure logs and
            surfaces an error indication without ever touching the transfer path (Req 1.7).
            </summary>
        </member>
        <member name="M:PDM.App.Services.PopupManager.TryForeground(System.Guid)">
            <summary>Brings an already-open popup for the id to the foreground. Returns false if none is open.</summary>
        </member>
        <member name="M:PDM.App.Services.PopupManager.IsActiveTransfer(PDM.Core.Models.DownloadStatus)">
            <summary>
            The Active_Transfer predicate from the requirements glossary: a download whose status is
            Connecting, Downloading, Assembling, or Verifying.
            </summary>
        </member>
        <member name="M:PDM.App.Services.PopupManager.RunOnUi(System.Action)">
            <summary>
            Marshals <paramref name="action"/> onto the UI thread through the injected dispatcher so every
            window/view-model touch happens on the UI thread (Req 7.4). Runs inline when already on the UI
            thread or when no dispatcher exists (headless tests).
            </summary>
        </member>
        <member name="T:PDM.App.Services.RefreshCoordinator">
             <summary>
             Tracks a single "refresh this download's link from the browser" request that is waiting to be
             fulfilled. When the user clicks <c>Refresh from browser</c> on a stalled download, the app arms
             this coordinator with that download's identity and a short expiry window; the next browser
             capture is then correlated against the armed download (see
             <see cref="M:PDM.Infrastructure.DownloadManager.TryRefreshFromCaptureAsync(System.Guid,System.Uri,System.String,System.Threading.CancellationToken)"/>) instead of being
             treated as a brand-new download.
            
             <para>Only one refresh can be armed at a time — arming a new one replaces the previous. All
             members are thread-safe because arming happens on the UI thread while correlation happens on
             the browser-listener's background task.</para>
             </summary>
        </member>
        <member name="T:PDM.App.Services.RefreshCoordinator.ArmedRefresh">
            <summary>An armed refresh: which download we are waiting to re-link, and until when.</summary>
        </member>
        <member name="M:PDM.App.Services.RefreshCoordinator.ArmedRefresh.#ctor(System.Guid,System.String,System.DateTimeOffset)">
            <summary>An armed refresh: which download we are waiting to re-link, and until when.</summary>
        </member>
        <member name="P:PDM.App.Services.RefreshCoordinator.Window">
            <summary>How long an armed refresh stays active before it is discarded.</summary>
        </member>
        <member name="E:PDM.App.Services.RefreshCoordinator.Changed">
            <summary>Raised whenever the armed state changes, so any UI indicator can update.</summary>
        </member>
        <member name="M:PDM.App.Services.RefreshCoordinator.Arm(System.Guid,System.String)">
            <summary>Arms (or re-arms) a refresh for <paramref name="downloadId"/>.</summary>
        </member>
        <member name="M:PDM.App.Services.RefreshCoordinator.Disarm(System.Nullable{System.Guid})">
            <summary>
            Clears the armed refresh. When <paramref name="downloadId"/> is supplied, only clears it if it
            matches the currently-armed download (so a stale disarm cannot cancel a newer arm).
            </summary>
        </member>
        <member name="P:PDM.App.Services.RefreshCoordinator.Current">
            <summary>The current armed refresh, or null when none is active or it has expired.</summary>
        </member>
        <member name="P:PDM.App.Services.RefreshCoordinator.IsArmed">
            <summary>True when a (non-expired) refresh is armed.</summary>
        </member>
        <member name="T:PDM.App.Services.SupportLinks">
            <summary>
            Central place for the "contact the PDM team" links surfaced in the UI (More menu, tray, and the
            License dialog). Keeps the URL in one spot so it can be updated without hunting through views.
            The support page lists email, the WhatsApp channel, and license-renewal instructions.
            </summary>
        </member>
        <member name="F:PDM.App.Services.SupportLinks.SupportUrl">
            <summary>Public support/contact page.</summary>
        </member>
        <member name="M:PDM.App.Services.SupportLinks.OpenSupport">
            <summary>Opens the support page in the user's default browser. Best-effort; never throws.</summary>
        </member>
        <member name="T:PDM.App.Services.UpdateOrchestrator">
            <summary>
            Owns the client side of the auto-update flow: fetches the signed manifest, decides whether an
            update is available, downloads and hash-verifies the package, and hands off to the launcher
            for the actual file swap. Kept out of the UI so the same logic can run headlessly (background
            checks on startup) and interactively (Check for Updates button).
            </summary>
        </member>
        <member name="M:PDM.App.Services.UpdateOrchestrator.BuildService">
            <summary>Returns null when auto-update isn't configured for this build.</summary>
        </member>
        <member name="P:PDM.App.Services.UpdateOrchestrator.CurrentVersion">
            <summary>Returns the currently-running assembly version.</summary>
        </member>
        <member name="M:PDM.App.Services.UpdateOrchestrator.CheckAsync(System.Threading.CancellationToken)">
            <summary>
            Checks whether an update is available on the configured channel. Any failure (offline,
            bad signature, malformed manifest) is logged and returned as a CheckFailed result.
            </summary>
        </member>
        <member name="M:PDM.App.Services.UpdateOrchestrator.RaiseFloorAsync(PDM.Updater.UpdateManifest,System.Version,System.Threading.CancellationToken)">
            <summary>
            Advances the persisted anti-rollback floor when a validly-signed manifest reports a version
            at or above what we have seen. Persisted so a later stale-manifest replay is rejected.
            </summary>
        </member>
        <member name="M:PDM.App.Services.UpdateOrchestrator.DownloadAsync(PDM.Updater.UpdateManifest,System.IProgress{System.Double},System.Threading.CancellationToken)">
            <summary>Downloads the update package into staging; the caller then applies it.</summary>
        </member>
        <member name="M:PDM.App.Services.UpdateOrchestrator.StartApply(System.String)">
            <summary>
            Applies the staged update package by copying <c>pdm-update.exe</c> to a temp location
            and running <b>that</b> copy - never the copy in the install directory. This is critical:
            Windows refuses to overwrite an exe that is currently running, so if the launcher were
            started from the install dir it would fail to replace itself and the whole update would
            roll back. Running from temp releases the file lock and lets the swap succeed.
            </summary>
        </member>
        <member name="T:PDM.App.ViewModels.BrowserRowViewModel">
            <summary>Row in the Browser Setup wizard: one per detected browser.</summary>
            <inheritdoc/>
        </member>
        <member name="P:PDM.App.ViewModels.BrowserRowViewModel.StorePageUrl">
            <summary>URL that opens the published "Add to Chrome/Edge/Brave" store listing.</summary>
        </member>
        <member name="F:PDM.App.ViewModels.BrowserRowViewModel._status">
            <summary>Status text shown next to the row.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.BrowserRowViewModel.Status">
            <inheritdoc cref="F:PDM.App.ViewModels.BrowserRowViewModel._status"/>
        </member>
        <member name="T:PDM.App.ViewModels.BrowserSetupViewModel">
            <summary>
            Backing view-model for the Browser Setup wizard. The PDM browser extension is published on
            the Chrome Web Store and its permanent ID is pre-authorised in the native-host manifest on
            every app start (<see cref="M:PDM.Platform.INativeHostInstaller.EnsureStoreExtensionRegistered(System.String)"/>). So setup
            is a single step: open the store listing and click "Add to &lt;browser&gt;". There is no
            developer-mode load-unpacked flow and nothing for the user to paste.
            </summary>
            <inheritdoc/>
            <inheritdoc/>
            <inheritdoc/>
        </member>
        <member name="M:PDM.App.ViewModels.BrowserSetupViewModel.OpenStorePage(PDM.App.ViewModels.BrowserRowViewModel)">
            <summary>
            Opens the published Chrome Web Store listing in the row's browser so the user can click
            "Add to Chrome/Edge/Brave". PDM already pre-authorises the store extension ID, so once the
            user adds it the integration works immediately — no ID pasting, no developer mode.
            </summary>
        </member>
        <member name="M:PDM.App.ViewModels.BrowserSetupViewModel.UnregisterAll">
            <summary>Unregisters PDM's native host from every Chromium browser.</summary>
        </member>
        <member name="M:PDM.App.ViewModels.BrowserSetupViewModel.StoreUrlFor(PDM.Platform.SupportedBrowser)">
            <summary>
            The store listing URL each browser opens. Chrome, Edge and Brave all install from the
            Chrome Web Store (Edge may prompt to "Allow extensions from other stores"). Firefox falls
            back to its debugging page until an AMO listing exists.
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.BrowserSetupViewModel.SummaryText">
            <inheritdoc cref="F:PDM.App.ViewModels.BrowserSetupViewModel._summaryText"/>
        </member>
        <member name="F:PDM.App.ViewModels.BrowserSetupViewModel.openStorePageCommand">
            <summary>The backing field for <see cref="P:PDM.App.ViewModels.BrowserSetupViewModel.OpenStorePageCommand"/>.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.BrowserSetupViewModel.OpenStorePageCommand">
            <summary>Gets an <see cref="T:CommunityToolkit.Mvvm.Input.IRelayCommand`1"/> instance wrapping <see cref="M:PDM.App.ViewModels.BrowserSetupViewModel.OpenStorePage(PDM.App.ViewModels.BrowserRowViewModel)"/>.</summary>
        </member>
        <member name="F:PDM.App.ViewModels.BrowserSetupViewModel.unregisterAllCommand">
            <summary>The backing field for <see cref="P:PDM.App.ViewModels.BrowserSetupViewModel.UnregisterAllCommand"/>.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.BrowserSetupViewModel.UnregisterAllCommand">
            <summary>Gets an <see cref="T:CommunityToolkit.Mvvm.Input.IRelayCommand"/> instance wrapping <see cref="M:PDM.App.ViewModels.BrowserSetupViewModel.UnregisterAll"/>.</summary>
        </member>
        <member name="T:PDM.App.ViewModels.CategoryFilterItem">
            <summary>
            A selectable entry in the categories sidebar. Using a dedicated type (rather than a
            nullable enum) means the "All Downloads" entry is a real, non-null object the ListBox
            can select and highlight — a null list item cannot be reliably selected in WPF.
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.CategoryFilterItem.Category">
            <summary>The category this entry filters to, or null for "All Downloads".</summary>
        </member>
        <member name="P:PDM.App.ViewModels.CategoryFilterItem.Label">
            <summary>Display label shown in the sidebar.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.CategoryFilterItem.Glyph">
            <summary>
            Segoe Fluent / MDL2 glyph shown beside the label so the sidebar stays recognizable when
            collapsed to icons only. UI-agnostic (just a string) so the shared VM carries no toolkit types.
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.CategoryFilterItem.IsAll">
            <summary>True when this entry represents the unfiltered "All" view.</summary>
        </member>
        <member name="T:PDM.App.ViewModels.DownloadItemViewModel">
            <summary>
            Per-download row view-model. Wraps a <see cref="T:PDM.Infrastructure.ManagedDownload"/> and exposes bindable
            formatted properties. Updates from the manager are marshalled onto the UI dispatcher.
            </summary>
            <inheritdoc/>
        </member>
        <member name="F:PDM.App.ViewModels.DownloadItemViewModel._isSelected">
            <summary>
            Whether this row's selection checkbox is ticked, for multi-select bulk actions (e.g. deleting
            several downloads at once). Independent of the grid's single "focused row" selection.
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadItemViewModel.Managed">
            <summary>Underlying managed download.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadItemViewModel.CreatedUtc">
            <summary>When the download was created; used to sort the list newest-first.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadItemViewModel.StatusLabel">
            <summary>
            Compact status for the list badge, including an intelligent hint when the transfer is
            struggling (e.g. "No internet", "Reconnecting") instead of a silent "stuck" state.
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadItemViewModel.ProgressPercent">
            <summary>Progress percentage in [0, 100]; 0 when the total size is unknown.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadItemViewModel.CanResume">
            <summary>True when the download is in a state where a Resume action is meaningful.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadItemViewModel.CanPause">
            <summary>True when the download is in a state where a Pause action is meaningful.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadItemViewModel.CanRefreshLink">
            <summary>
            True while re-linking the download from the browser still makes sense (i.e. it has not yet
            completed). Drives the "Refresh from browser" context-menu item's visibility.
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadItemViewModel.IsArchive">
            <summary>True when the destination file is an archive type PDM can extract.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadItemViewModel.CanExtract">
            <summary>
            True when the download has completed and is an extractable archive; drives the
            "Extract and open" action's visibility.
            </summary>
        </member>
        <member name="M:PDM.App.ViewModels.DownloadItemViewModel.NotifyProgress">
            <summary>
            Marshals a lightweight refresh of the fields that move during a live transfer (speed, ETA,
            bytes, percentage, connections, and the issue-aware status label) onto the UI thread. Called
            on every progress snapshot - several times a second per active download - so it deliberately
            leaves the status/capability/metadata properties (which only change on lifecycle transitions)
            untouched to keep per-tick UI churn to a minimum.
            </summary>
        </member>
        <member name="M:PDM.App.ViewModels.DownloadItemViewModel.NotifyAll">
            <summary>
            Marshals a full refresh onto the UI thread: the live-transfer fields plus the status,
            capability, and metadata properties. Called on lifecycle transitions (added, status change,
            URL change) where any property may have changed.
            </summary>
        </member>
        <member name="M:PDM.App.ViewModels.DownloadItemViewModel.RaiseProgress">
            <summary>Raises the properties that change as bytes flow. Must run on the UI thread.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadItemViewModel.IsSelected">
            <inheritdoc cref="F:PDM.App.ViewModels.DownloadItemViewModel._isSelected"/>
        </member>
        <member name="T:PDM.App.ViewModels.DownloadPopupViewModel">
            <summary>
            Per-popup bindable state for a single <see cref="T:PDM.Infrastructure.ManagedDownload"/>. Mirrors the formatted-property
            pattern used by <see cref="T:PDM.App.ViewModels.DownloadItemViewModel"/> but is dedicated to an IDM-style popup window.
            <para>
            This partial class is built up across several tasks: this section covers the identity and status
            display projections (Requirements 1.4, 1.5). Later tasks add live-metric projections, control
            enablement / terminal-state affordances, and Pause/Resume/Cancel/Open commands to the same class.
            </para>
            </summary>
            <inheritdoc/>
            <inheritdoc/>
            <inheritdoc/>
            <inheritdoc/>
            <inheritdoc/>
            <inheritdoc/>
        </member>
        <member name="F:PDM.App.ViewModels.DownloadPopupViewModel.FileNamePlaceholder">
            <summary>Placeholder shown when the file name is unavailable (Requirement 1.5).</summary>
        </member>
        <member name="F:PDM.App.ViewModels.DownloadPopupViewModel.SourceUrlPlaceholder">
            <summary>Placeholder shown when the source URL is unavailable (Requirement 1.5).</summary>
        </member>
        <member name="F:PDM.App.ViewModels.DownloadPopupViewModel._manager">
            <summary>
            The manager used to Pause/Resume/Cancel the bound download. May be <c>null</c> for
            derivation-only construction (e.g. property tests that only exercise projections); the
            control commands no-op when it is absent.
            </summary>
        </member>
        <member name="F:PDM.App.ViewModels.DownloadPopupViewModel._confirmCancel">
            <summary>
            Confirmation gate for the Cancel command. Invoked with a human-readable prompt and completes
            with <c>true</c> only when the user confirms cancellation (Requirements 3.7-3.9). Async so the
            UI head can present a non-blocking dialog (WPF wraps its synchronous modal in a completed task;
            Avalonia awaits <c>Window.ShowDialog</c>).
            </summary>
        </member>
        <member name="F:PDM.App.ViewModels.DownloadPopupViewModel._showError">
            <summary>
            Error indication delegate used when a manager control call fails. Invoked with a message and
            must not mutate the status display (Requirement 3.10).
            </summary>
        </member>
        <member name="F:PDM.App.ViewModels.DownloadPopupViewModel._latestProgress">
            <summary>
            The most recent progress snapshot for the bound download. Seeded from the managed download's
            latest snapshot at construction and refreshed by later live-metric handling.
            </summary>
        </member>
        <member name="M:PDM.App.ViewModels.DownloadPopupViewModel.#ctor(PDM.Infrastructure.ManagedDownload)">
            <summary>
            Derivation-only constructor. Wires just the managed download so the pure projection layer can
            be exercised without a manager or view-layer delegates; the Pause/Resume/Cancel commands are
            inert under this constructor.
            </summary>
        </member>
        <member name="M:PDM.App.ViewModels.DownloadPopupViewModel.#ctor(PDM.Infrastructure.ManagedDownload,PDM.Infrastructure.DownloadManager,System.Func{System.String,System.Threading.Tasks.Task{System.Boolean}},System.Action{System.String})">
            <summary>
            Full constructor used by the popup window factory (design task 8.3). Injects the
            <see cref="T:PDM.Infrastructure.DownloadManager"/> that backs the Pause/Resume/Cancel commands, a
            <paramref name="confirmCancel"/> delegate that the Cancel command consults before requesting
            cancellation (Requirements 3.7-3.9), and a <paramref name="showError"/> delegate invoked when a
            manager control call fails (Requirement 3.10).
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.Managed">
            <summary>Underlying managed download this popup is bound to.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.Id">
            <summary>Stable identifier of the bound download (one-to-one popup binding, Requirement 1.3).</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.DestinationPath">
            <summary>
            Destination path on disk, used by the head to render the file's real shell icon (a game or
            installer .exe shows its own icon, a .zip shows the archive icon, and so on).
            </summary>
        </member>
        <member name="F:PDM.App.ViewModels.DownloadPopupViewModel._autoOpenOnComplete">
            <summary>When true, the head opens the finished file automatically once the download completes.</summary>
        </member>
        <member name="F:PDM.App.ViewModels.DownloadPopupViewModel._shutdownWhenDone">
            <summary>
            When true, the head starts a short, cancellable shutdown countdown once the download completes.
            </summary>
        </member>
        <member name="F:PDM.App.ViewModels.DownloadPopupViewModel._autoExtractWhenDone">
            <summary>
            When true, the head automatically extracts the archive and opens the folder once the download
            completes. Armed while the download is still running via the popup's "Auto extract and open"
            action; the head captures any password up front (see <see cref="P:PDM.App.ViewModels.DownloadPopupViewModel.PendingExtractionPassword"/>).
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.PendingExtractionPassword">
            <summary>
            Password captured up front for the auto-extract-on-complete flow (null/empty when the archive
            isn't protected). Set by the head when the user arms auto-extract; used at completion. If it's
            wrong, the head shows a "wrong password" error and re-prompts.
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.IsLimitedPlan">
            <summary>
            True when the app is on a free/limited plan (no functional license), so the popup shows a
            short, professional notice that download speed is reduced. Set once by the factory.
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.LimitedPlanNotice">
            <summary>Short, professional speed-limit notice shown on the popup while on the free plan.</summary>
        </member>
        <member name="F:PDM.App.ViewModels.DownloadPopupViewModel._completionSignaled">
            <summary>Guards <see cref="E:PDM.App.ViewModels.DownloadPopupViewModel.Completed"/> so the "when done" actions run exactly once.</summary>
        </member>
        <member name="E:PDM.App.ViewModels.DownloadPopupViewModel.Completed">
            <summary>
            Raised exactly once, on the UI thread, when the download first reaches the Completed state.
            The head subscribes to run the post-download options (auto-open / shutdown countdown).
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.Status">
            <summary>Current lifecycle status of the bound download.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.FileNameDisplay">
            <summary>
            File name for display. Shows a placeholder when the underlying value is empty or whitespace,
            and the verbatim value otherwise. Evaluated independently of <see cref="P:PDM.App.ViewModels.DownloadPopupViewModel.SourceUrlDisplay"/>
            (Requirements 1.4, 1.5).
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.SourceUrlDisplay">
            <summary>
            Source URL for display. Shows a placeholder when the underlying value is empty or whitespace,
            and the verbatim value otherwise. Evaluated independently of <see cref="P:PDM.App.ViewModels.DownloadPopupViewModel.FileNameDisplay"/>
            (Requirements 1.4, 1.5).
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.StatusLabel">
            <summary>Compact status label for the header pill; issue-aware while downloading.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.StatusMessage">
            <summary>
            Full, user-friendly status sentence for the Main tab, e.g. "Waiting for the download server to
            respond…" or "Connection timed out. Reconnecting… (attempt 2 of 5)". Reflects the actual
            detected issue so users never have to guess why a download stalled or slowed.
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.BytesDownloaded">
            <summary>Bytes transferred, taken from the latest snapshot or the persisted state.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.TotalBytes">
            <summary>Total bytes, taken from the latest snapshot or the persisted state; null when unknown.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.BytesPerSecond">
            <summary>Instantaneous transfer rate from the latest snapshot (0 when none).</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.EffectiveStatus">
            <summary>
            Effective status for control-enablement and status-driven display.
            <para>
            This MUST read the managed download's authoritative status, not the last progress snapshot.
            The download manager (and the worker it runs) mutate <c>_managed.State.Status</c> directly on
            the same object this view-model holds, so it is always at least as fresh as any snapshot.
            A progress snapshot, by contrast, is a point-in-time copy: after a Pause the worker stops
            emitting snapshots, so the last one still says "Downloading". Preferring that stale snapshot
            (the previous behaviour) left the Resume button permanently disabled after a pause and made
            the speed read "Stalled" instead of idle — the reported "Resume doesn't work" bug.
            </para>
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.ProgressPercent">
            <summary>
            Progress percentage clamped to [0, 100]. Forced to 100 when the download is Completed
            (Requirement 2.9); 0 when the total size is unknown (Requirements 2.2, 2.7).
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.IsIndeterminate">
            <summary>
            True if and only if the total size is unknown (null). While indeterminate, the numeric
            percentage is suppressed by the view (Requirement 2.7).
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.DownloadedText">
            <summary>
            "downloaded / total" when the total is known, otherwise just the downloaded amount
            (Requirement 2.1).
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.SpeedText">
            <summary>
            Transfer speed. A formatted data-rate when moving (Requirement 2.3); "Stalled" when the rate
            is zero for an active transfer (Requirement 2.4); "—" when the download is not active.
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.EtaText">
            <summary>
            Estimated time remaining formatted as hh:mm:ss, or the unknown-time token ("—") when no
            estimate is available (Requirements 2.5, 2.6).
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.ConnectionsText">
            <summary>
            Active/total connection counts from the latest snapshot (Requirement 2.8), written as
            "3 / 8 active" so the number is self-describing — a bare "3/8" under a heading left users
            guessing what the two figures meant.
            </summary>
        </member>
        <member name="M:PDM.App.ViewModels.DownloadPopupViewModel.ApplyProgress(PDM.Core.Models.DownloadProgress)">
            <summary>
            Stores the latest progress snapshot and raises <see cref="E:CommunityToolkit.Mvvm.ComponentModel.ObservableObject.PropertyChanged"/>
            for every formatted live-metric property (Requirements 2.1, 4.3, 4.4, 5.6). Callers marshal
            this onto the UI thread (the <c>PopupManager</c> is the single dispatch choke point).
            </summary>
        </member>
        <member name="F:PDM.App.ViewModels.DownloadPopupViewModel.GenericFailureMessage">
            <summary>Generic failure text when a download failed without a recorded error (Requirement 8.3).</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.CanPause">
            <summary>
            True only while the effective status is Connecting or Downloading; the Pause control is
            disabled in every other state (Requirements 3.3, 8.2, 8.4).
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.CanResume">
            <summary>
            True only while the effective status is Paused or Failed; the Resume control is disabled in
            every other state (Requirements 3.4, 8.2, 8.3).
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.CanCancel">
            <summary>
            False while the effective status is Completed, Failed, or Canceled; enabled otherwise
            (Requirements 3.5, 8.4).
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.IsCompleted">
            <summary>True when the bound download reached the Completed terminal state (Requirements 2.9, 8.1).</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.IsFailed">
            <summary>True when the bound download reached the Failed terminal state (Requirements 8.2, 8.3).</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.IsCanceled">
            <summary>True when the bound download reached the Canceled terminal state (Requirement 8.4).</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.IsPaused">
            <summary>
            True while the download is Paused. Drives the popup's "Download later" action, which closes the
            popup without cancelling so the download stays paused and can be resumed later from the main
            list (unlike Cancel, which deletes the partial data).
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.IsArchive">
            <summary>True when the destination file is an archive type PDM can extract.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.CanExtract">
            <summary>
            True when the download has completed and is an extractable archive; drives the popup's
            "Extract and open" action.
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.CanArmAutoExtract">
            <summary>
            True while the download is still running and the file is an archive that hasn't been armed for
            auto-extraction yet; drives the "Auto extract and open" action.
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.ShowWhenDoneOptions">
            <summary>
            True while the post-download choices still matter, i.e. before the download reaches a terminal
            state. Drives the inline "when the download finishes" options on the Download tab, which is
            where users actually look for them (they were previously buried in the Options tab).
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.ShowAutoExtractOption">
            <summary>
            True when the auto-extract choice is meaningful: the transfer is still running and the file is
            an archive PDM can extract. A non-archive never shows the option at all.
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.FailureMessage">
            <summary>
            Failure detail shown while the download is Failed: the recorded error message when one exists,
            otherwise a non-empty generic message (Requirements 8.2, 8.3). <c>null</c> when not failed.
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.CanOpenFile">
            <summary>Open-file affordance is enabled only when the download is Completed (Requirement 8.1).</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.CanOpenFolder">
            <summary>Open-folder affordance is enabled only when the download is Completed (Requirement 8.1).</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.IsTerminal">
            <summary>True once the download reaches any terminal state (Completed, Failed, or Canceled).</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.ShowLiveMetrics">
            <summary>
            Whether the live transfer metrics (speed, time-left, connections) are still meaningful and
            should be shown. They are suppressed once the download reaches a terminal state so a completed,
            failed, or canceled popup presents a clean summary instead of stale rate/ETA/connection figures.
            </summary>
        </member>
        <member name="M:PDM.App.ViewModels.DownloadPopupViewModel.NotifyStatusChanged">
            <summary>
            Refreshes every status-derived property after a <c>DownloadChanged</c> event so the popup's
            controls and terminal-state affordances update within the required window (Requirements 3.6,
            8.1-8.4). Also re-raises the status-influenced live-metric properties (ProgressPercent forced to
            100 and SpeedText switching to the non-active token when a terminal state is reached, Req 2.9).
            Callers marshal this onto the UI thread (the <c>PopupManager</c> is the single dispatch choke point).
            </summary>
        </member>
        <member name="F:PDM.App.ViewModels.DownloadPopupViewModel.CancelConfirmationPrompt">
            <summary>
            Prompt shown by the Cancel confirmation gate (Requirement 3.7). Makes the destructive nature
            explicit: cancelling deletes the partially downloaded data, so the file must be downloaded
            again from the start.
            </summary>
        </member>
        <member name="M:PDM.App.ViewModels.DownloadPopupViewModel.PauseAsync">
            <summary>
            Requests that the <see cref="T:PDM.Infrastructure.DownloadManager"/> pause this popup's download (Requirements 3.1).
            Failures are reported via <c>showError</c> and never change the status display (Requirement 3.10).
            </summary>
        </member>
        <member name="M:PDM.App.ViewModels.DownloadPopupViewModel.ResumeAsync">
            <summary>
            Requests that the <see cref="T:PDM.Infrastructure.DownloadManager"/> resume this popup's download (Requirements 3.2).
            Failures are reported via <c>showError</c> and never change the status display (Requirement 3.10).
            </summary>
        </member>
        <member name="M:PDM.App.ViewModels.DownloadPopupViewModel.CancelAsync">
            <summary>
            Requests cancellation of this popup's download. The injected confirmation delegate is consulted
            first; cancellation is only requested from the <see cref="T:PDM.Infrastructure.DownloadManager"/> when the user
            confirms (Requirements 3.7-3.9). Manager-call failures are reported via <c>showError</c> and
            never change the status display (Requirement 3.10).
            </summary>
        </member>
        <member name="F:PDM.App.ViewModels.DownloadPopupViewModel.FileMissingMessage">
            <summary>Error shown when the completed file can no longer be opened (Requirement 8.6).</summary>
        </member>
        <member name="F:PDM.App.ViewModels.DownloadPopupViewModel.FolderMissingMessage">
            <summary>Error shown when the containing folder can no longer be opened (Requirement 8.6).</summary>
        </member>
        <member name="M:PDM.App.ViewModels.DownloadPopupViewModel.OpenFile">
            <summary>
            Opens the completed file with its shell association, mirroring <c>MainViewModel.OpenFile</c>.
            When the file is missing, it shows an "item could not be opened" error via <c>showError</c> and
            leaves the status display (the completed indication) untouched (Requirements 8.1, 8.6).
            </summary>
        </member>
        <member name="M:PDM.App.ViewModels.DownloadPopupViewModel.OpenFolder">
            <summary>
            Reveals the completed file in its containing folder using explorer.exe, mirroring
            <c>MainViewModel.OpenFolder</c>. When the folder is missing, it shows an "item could not be
            opened" error via <c>showError</c> and leaves the status display (the completed indication)
            untouched (Requirements 8.1, 8.6).
            </summary>
        </member>
        <member name="M:PDM.App.ViewModels.DownloadPopupViewModel.IsActiveTransfer(PDM.Core.Models.DownloadStatus)">
            <summary>
            Whether a status counts as an Active_Transfer per the requirements glossary: Connecting,
            Downloading, Assembling, or Verifying.
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.AutoOpenOnComplete">
            <inheritdoc cref="F:PDM.App.ViewModels.DownloadPopupViewModel._autoOpenOnComplete"/>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.ShutdownWhenDone">
            <inheritdoc cref="F:PDM.App.ViewModels.DownloadPopupViewModel._shutdownWhenDone"/>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.AutoExtractWhenDone">
            <inheritdoc cref="F:PDM.App.ViewModels.DownloadPopupViewModel._autoExtractWhenDone"/>
        </member>
        <member name="M:PDM.App.ViewModels.DownloadPopupViewModel.OnAutoOpenOnCompleteChanged(System.Boolean)">
            <summary>
            Opening the finished file and extracting it are mutually exclusive intents — a .zip cannot be
            launched and unpacked in the same instant — so arming one disarms the other. The guard on
            <paramref name="value"/> stops the two handlers from bouncing off each other.
            </summary>
        </member>
        <member name="M:PDM.App.ViewModels.DownloadPopupViewModel.OnAutoExtractWhenDoneChanged(System.Boolean)">
            <summary>Executes the logic for when <see cref="P:PDM.App.ViewModels.DownloadPopupViewModel.AutoExtractWhenDone"/> just changed.</summary>
            <param name="value">The new property value that was set.</param>
            <remarks>This method is invoked right after the value of <see cref="P:PDM.App.ViewModels.DownloadPopupViewModel.AutoExtractWhenDone"/> is changed.</remarks>
        </member>
        <member name="F:PDM.App.ViewModels.DownloadPopupViewModel.pauseCommand">
            <summary>The backing field for <see cref="P:PDM.App.ViewModels.DownloadPopupViewModel.PauseCommand"/>.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.PauseCommand">
            <summary>Gets an <see cref="T:CommunityToolkit.Mvvm.Input.IAsyncRelayCommand"/> instance wrapping <see cref="M:PDM.App.ViewModels.DownloadPopupViewModel.PauseAsync"/>.</summary>
        </member>
        <member name="F:PDM.App.ViewModels.DownloadPopupViewModel.resumeCommand">
            <summary>The backing field for <see cref="P:PDM.App.ViewModels.DownloadPopupViewModel.ResumeCommand"/>.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.ResumeCommand">
            <summary>Gets an <see cref="T:CommunityToolkit.Mvvm.Input.IAsyncRelayCommand"/> instance wrapping <see cref="M:PDM.App.ViewModels.DownloadPopupViewModel.ResumeAsync"/>.</summary>
        </member>
        <member name="F:PDM.App.ViewModels.DownloadPopupViewModel.cancelCommand">
            <summary>The backing field for <see cref="P:PDM.App.ViewModels.DownloadPopupViewModel.CancelCommand"/>.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.CancelCommand">
            <summary>Gets an <see cref="T:CommunityToolkit.Mvvm.Input.IAsyncRelayCommand"/> instance wrapping <see cref="M:PDM.App.ViewModels.DownloadPopupViewModel.CancelAsync"/>.</summary>
        </member>
        <member name="F:PDM.App.ViewModels.DownloadPopupViewModel.openFileCommand">
            <summary>The backing field for <see cref="P:PDM.App.ViewModels.DownloadPopupViewModel.OpenFileCommand"/>.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.OpenFileCommand">
            <summary>Gets an <see cref="T:CommunityToolkit.Mvvm.Input.IRelayCommand"/> instance wrapping <see cref="M:PDM.App.ViewModels.DownloadPopupViewModel.OpenFile"/>.</summary>
        </member>
        <member name="F:PDM.App.ViewModels.DownloadPopupViewModel.openFolderCommand">
            <summary>The backing field for <see cref="P:PDM.App.ViewModels.DownloadPopupViewModel.OpenFolderCommand"/>.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.DownloadPopupViewModel.OpenFolderCommand">
            <summary>Gets an <see cref="T:CommunityToolkit.Mvvm.Input.IRelayCommand"/> instance wrapping <see cref="M:PDM.App.ViewModels.DownloadPopupViewModel.OpenFolder"/>.</summary>
        </member>
        <member name="T:PDM.App.ViewModels.DownloadStatusMessages">
            <summary>
            Turns a download's status plus the latest <see cref="T:PDM.Core.Models.DownloadIssue"/> hint into clear,
            user-friendly text. Two forms: a compact <see cref="M:PDM.App.ViewModels.DownloadStatusMessages.ShortLabel(PDM.Core.Models.DownloadStatus,PDM.Core.Models.DownloadIssue)"/> for the list/status pill, and a
            full-sentence <see cref="M:PDM.App.ViewModels.DownloadStatusMessages.Detailed(PDM.Core.Models.DownloadStatus,PDM.Core.Models.DownloadIssue,System.Int32,System.Int32,System.String)"/> message for the popup so users understand <em>why</em> a
            download stalled or slowed without guessing. Shared by the list and popup view-models.
            </summary>
        </member>
        <member name="M:PDM.App.ViewModels.DownloadStatusMessages.ShortLabel(PDM.Core.Models.DownloadStatus,PDM.Core.Models.DownloadIssue)">
            <summary>Compact status text for the list badge and popup status pill.</summary>
        </member>
        <member name="M:PDM.App.ViewModels.DownloadStatusMessages.Detailed(PDM.Core.Models.DownloadStatus,PDM.Core.Models.DownloadIssue,System.Int32,System.Int32,System.String)">
            <summary>Full, friendly status sentence for the popup's Main tab.</summary>
        </member>
        <member name="T:PDM.App.ViewModels.LicenseBannerViewModel">
            <summary>
            Tracks the current license status for display in the main window. Polls the app-wide
            snapshot on a timer so the "days left" figure stays fresh (once a minute is plenty for a
            day-granularity display); each tick is marshalled onto the UI thread via the injected
            <see cref="T:PDM.App.Services.IUiDispatcher"/>.
            </summary>
            <inheritdoc/>
        </member>
        <member name="F:PDM.App.ViewModels.LicenseBannerViewModel._planName">
            <summary>Concise plan label for the always-visible sidebar badge, e.g. "Premium plan active".</summary>
        </member>
        <member name="F:PDM.App.ViewModels.LicenseBannerViewModel._isPremiumPlan">
            <summary>True when the plan is a paid, activated license (drives the premium sidebar badge).</summary>
        </member>
        <member name="F:PDM.App.ViewModels.LicenseBannerViewModel._isLimitedPlan">
            <summary>True when the app is in the free/limited mode (no functional license).</summary>
        </member>
        <member name="M:PDM.App.ViewModels.LicenseBannerViewModel.Refresh">
            <summary>Re-reads the license snapshot and updates the banner text.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.LicenseBannerViewModel.StatusText">
            <inheritdoc cref="F:PDM.App.ViewModels.LicenseBannerViewModel._statusText"/>
        </member>
        <member name="P:PDM.App.ViewModels.LicenseBannerViewModel.DetailText">
            <inheritdoc cref="F:PDM.App.ViewModels.LicenseBannerViewModel._detailText"/>
        </member>
        <member name="P:PDM.App.ViewModels.LicenseBannerViewModel.ActionLabel">
            <inheritdoc cref="F:PDM.App.ViewModels.LicenseBannerViewModel._actionLabel"/>
        </member>
        <member name="P:PDM.App.ViewModels.LicenseBannerViewModel.IsActionVisible">
            <inheritdoc cref="F:PDM.App.ViewModels.LicenseBannerViewModel._isActionVisible"/>
        </member>
        <member name="P:PDM.App.ViewModels.LicenseBannerViewModel.IsWarning">
            <inheritdoc cref="F:PDM.App.ViewModels.LicenseBannerViewModel._isWarning"/>
        </member>
        <member name="P:PDM.App.ViewModels.LicenseBannerViewModel.PlanName">
            <inheritdoc cref="F:PDM.App.ViewModels.LicenseBannerViewModel._planName"/>
        </member>
        <member name="P:PDM.App.ViewModels.LicenseBannerViewModel.IsPremiumPlan">
            <inheritdoc cref="F:PDM.App.ViewModels.LicenseBannerViewModel._isPremiumPlan"/>
        </member>
        <member name="P:PDM.App.ViewModels.LicenseBannerViewModel.IsLimitedPlan">
            <inheritdoc cref="F:PDM.App.ViewModels.LicenseBannerViewModel._isLimitedPlan"/>
        </member>
        <member name="T:PDM.App.ViewModels.LicenseViewModel">
            <summary>View-model for the license activation dialog.</summary>
            <inheritdoc/>
            <inheritdoc/>
            <inheritdoc/>
        </member>
        <member name="P:PDM.App.ViewModels.LicenseViewModel.ShouldOfferActivation">
            <summary>True if the current state warrants encouraging activation.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.LicenseViewModel.IsActivated">
            <summary>True if the app is currently activated (offer deactivation instead).</summary>
        </member>
        <member name="P:PDM.App.ViewModels.LicenseViewModel.Snapshot">
            <inheritdoc cref="F:PDM.App.ViewModels.LicenseViewModel._snapshot"/>
        </member>
        <member name="P:PDM.App.ViewModels.LicenseViewModel.LicenseKey">
            <inheritdoc cref="F:PDM.App.ViewModels.LicenseViewModel._licenseKey"/>
        </member>
        <member name="P:PDM.App.ViewModels.LicenseViewModel.Fingerprint">
            <inheritdoc cref="F:PDM.App.ViewModels.LicenseViewModel._fingerprint"/>
        </member>
        <member name="P:PDM.App.ViewModels.LicenseViewModel.StatusText">
            <inheritdoc cref="F:PDM.App.ViewModels.LicenseViewModel._statusText"/>
        </member>
        <member name="P:PDM.App.ViewModels.LicenseViewModel.Message">
            <inheritdoc cref="F:PDM.App.ViewModels.LicenseViewModel._message"/>
        </member>
        <member name="P:PDM.App.ViewModels.LicenseViewModel.IsWorking">
            <inheritdoc cref="F:PDM.App.ViewModels.LicenseViewModel._isWorking"/>
        </member>
        <member name="M:PDM.App.ViewModels.LicenseViewModel.OnSnapshotChanged(PDM.Licensing.LicenseSnapshot)">
            <summary>Executes the logic for when <see cref="P:PDM.App.ViewModels.LicenseViewModel.Snapshot"/> just changed.</summary>
            <param name="value">The new property value that was set.</param>
            <remarks>This method is invoked right after the value of <see cref="P:PDM.App.ViewModels.LicenseViewModel.Snapshot"/> is changed.</remarks>
        </member>
        <member name="F:PDM.App.ViewModels.LicenseViewModel.activateCommand">
            <summary>The backing field for <see cref="P:PDM.App.ViewModels.LicenseViewModel.ActivateCommand"/>.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.LicenseViewModel.ActivateCommand">
            <summary>Gets an <see cref="T:CommunityToolkit.Mvvm.Input.IAsyncRelayCommand"/> instance wrapping <see cref="M:PDM.App.ViewModels.LicenseViewModel.ActivateAsync"/>.</summary>
        </member>
        <member name="F:PDM.App.ViewModels.LicenseViewModel.deactivateCommand">
            <summary>The backing field for <see cref="P:PDM.App.ViewModels.LicenseViewModel.DeactivateCommand"/>.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.LicenseViewModel.DeactivateCommand">
            <summary>Gets an <see cref="T:CommunityToolkit.Mvvm.Input.IAsyncRelayCommand"/> instance wrapping <see cref="M:PDM.App.ViewModels.LicenseViewModel.DeactivateAsync"/>.</summary>
        </member>
        <member name="T:PDM.App.ViewModels.MainViewModel">
            <summary>
            The root view-model for the main window. Owns the observable list of downloads,
            subscribes to <see cref="T:PDM.Infrastructure.DownloadManager"/> events, and exposes commands invoked
            from the toolbar and per-row context menus.
            </summary>
            <inheritdoc/>
            <inheritdoc/>
            <inheritdoc/>
            <inheritdoc/>
            <inheritdoc/>
            <inheritdoc/>
        </member>
        <member name="P:PDM.App.ViewModels.MainViewModel.Items">
            <summary>
            The master, unfiltered download collection. The UI head wraps this in its own
            framework-specific collection view (WPF <c>CollectionViewSource</c>, Avalonia
            <c>DataGridCollectionView</c>) to apply <see cref="M:PDM.App.ViewModels.MainViewModel.FilterItem(PDM.App.ViewModels.DownloadItemViewModel)"/> and status sorting, and
            refreshes that view when <see cref="E:PDM.App.ViewModels.MainViewModel.FilterChanged"/> fires. Keeping the filtering policy here
            (predicate + empty-state) while leaving the view mechanism to the head is what makes this
            view-model UI-framework-agnostic.
            </summary>
        </member>
        <member name="E:PDM.App.ViewModels.MainViewModel.FilterChanged">
            <summary>
            Raised when the active category or search text changes, so the head can refresh its
            collection view. The predicate itself is <see cref="M:PDM.App.ViewModels.MainViewModel.FilterItem(PDM.App.ViewModels.DownloadItemViewModel)"/>.
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.MainViewModel.AppTitle">
            <summary>Window title with the running product version, e.g. "Perfect Download Manager 1.0.6".</summary>
        </member>
        <member name="F:PDM.App.ViewModels.MainViewModel._hasSelection">
            <summary>
            True when a delete action would affect something: any row's selection checkbox is ticked, or a
            row is focused. Drives the Delete toolbar button's visibility.
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.MainViewModel.CanPauseSelected">
            <summary>
            Toolbar visibility for the Pause action: true only when a download is focused (selected) and
            its current state supports pausing. Exposed as a single view-model property rather than a
            nested <c>SelectedItem.CanPause</c> path binding so the button reliably collapses to a real
            <c>false</c> when nothing is selected (a null path binding would otherwise fall back to the
            control's default visibility) and the toolbar has one source of truth for its state.
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.MainViewModel.CanResumeSelected">
            <summary>
            Toolbar visibility for the Resume action: true only when a download is focused (selected) and
            its current state supports resuming. See <see cref="P:PDM.App.ViewModels.MainViewModel.CanPauseSelected"/> for the rationale.
            </summary>
        </member>
        <member name="F:PDM.App.ViewModels.MainViewModel._isListEmpty">
            <summary>True when the filtered list is empty; drives the empty-state overlay.</summary>
        </member>
        <member name="F:PDM.App.ViewModels.MainViewModel._emptyStateTitle">
            <summary>Human-readable line shown as the empty-state title.</summary>
        </member>
        <member name="F:PDM.App.ViewModels.MainViewModel._emptyStateHint">
            <summary>Second-line hint under the empty-state title.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.MainViewModel.Categories">
            <summary>Categories shown in the sidebar. The first entry is the "All Downloads" view.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.MainViewModel.LicenseBanner">
            <summary>License banner shown at the top of the main window.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.MainViewModel.UpdateBanner">
            <summary>
            Backs the sidebar "update available" notice. The head kicks off <see cref="M:PDM.App.ViewModels.UpdateBannerViewModel.CheckAsync(System.Threading.CancellationToken)"/>
            in the background at startup; the notice stays hidden unless a newer version is found.
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.MainViewModel.PopupManager">
            <summary>
            Reopens (or foregrounds) the per-download popup window for a selected download. Set during
            app startup (see <c>App.OnStartup</c>) once the manager has been constructed; left null in
            contexts where popups are not wired up, in which case the "Show popup" command is a no-op.
            </summary>
        </member>
        <member name="M:PDM.App.ViewModels.MainViewModel.UpdateEmptyState">
            <summary>
            Recomputes <see cref="P:PDM.App.ViewModels.MainViewModel.IsListEmpty"/> plus the empty-state title/hint. The title changes
            with the active category so the user always sees "No Videos downloaded yet" (etc.)
            rather than a generic empty grid.
            </summary>
        </member>
        <member name="M:PDM.App.ViewModels.MainViewModel.FilterItem(PDM.App.ViewModels.DownloadItemViewModel)">
            <summary>
            The filter predicate applied by the head's collection view: an item is shown when it matches
            the selected category and the (optional) search text over file name / source URL.
            </summary>
        </member>
        <member name="F:PDM.App.ViewModels.MainViewModel._suppressSelectionSync">
            <summary>Guards <see cref="P:PDM.App.ViewModels.MainViewModel.AllSelected"/>'s setter so applying it to every row does not
            recurse back through each row's PropertyChanged into another aggregate recompute.</summary>
        </member>
        <member name="M:PDM.App.ViewModels.MainViewModel.RaiseToolbarState">
            <summary>Re-raises the selection-driven toolbar visibility properties as a group.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.MainViewModel.AllSelected">
            <summary>
            Tri-state "select all" bound to the header checkbox: true when every row is ticked, false when
            none are, and null (indeterminate) for a partial selection. Setting it ticks or clears every
            row's checkbox in one go. Kept here (rather than in code-behind) so the header checkbox drives
            selection through a single, testable source of truth.
            </summary>
        </member>
        <member name="M:PDM.App.ViewModels.MainViewModel.ShowPopup(PDM.App.ViewModels.DownloadItemViewModel)">
            <summary>
            Reopens (or brings to the foreground) the per-download popup window for the given download,
            falling back to the currently selected row when no explicit item is supplied. Wired to the
            toolbar button and the downloads-grid context menu (Requirement 5.4). No-op when popups are
            not wired up or no download is targeted.
            </summary>
        </member>
        <member name="M:PDM.App.ViewModels.MainViewModel.CanShowPopup(PDM.App.ViewModels.DownloadItemViewModel)">
            <summary>The toolbar button is enabled only when a download row is selected.</summary>
        </member>
        <member name="M:PDM.App.ViewModels.MainViewModel.PerformDeleteAsync(PDM.App.ViewModels.DownloadItemViewModel,System.Boolean)">
            <summary>
            Removes a download from the list, optionally deleting the file(s) from disk.
            The confirmation prompt lives in the view; this method performs the action once
            the user has confirmed.
            </summary>
        </member>
        <member name="M:PDM.App.ViewModels.MainViewModel.FindDuplicate(System.Uri)">
            <summary>
            Returns an existing download that matches <paramref name="url"/> (already downloaded, partially
            downloaded, or in progress), or null when there is no duplicate. Used by the add flow to prompt
            the user before starting a redundant transfer.
            </summary>
        </member>
        <member name="M:PDM.App.ViewModels.MainViewModel.ResumeExistingAsync(System.Guid)">
            <summary>Resumes an existing download by id (used by the duplicate prompt's "continue" action).</summary>
        </member>
        <member name="M:PDM.App.ViewModels.MainViewModel.RevealExisting(System.Guid)">
            <summary>Selects an existing download row by id and reveals its popup, if one is available.</summary>
        </member>
        <member name="M:PDM.App.ViewModels.MainViewModel.ChangeUrlAsync(System.Guid,System.String,System.String,PDM.Infrastructure.ReplaceUrlMode)">
            <summary>
            Changes (refreshes) the URL of a download. Delegates to <see cref="M:PDM.Infrastructure.DownloadManager.ChangeUrlAsync(System.Guid,System.Uri,System.String,PDM.Infrastructure.ReplaceUrlMode,System.Threading.CancellationToken)"/>,
            which probes the new link and preserves progress only when it is safe to do so; the dialog in
            the view interprets the returned <see cref="T:PDM.Infrastructure.ChangeUrlResult"/> (including the restart handshake).
            </summary>
        </member>
        <member name="T:PDM.App.ViewModels.MainViewModel.AddResult">
            <summary>Outcome of an add-download attempt, so the view can react appropriately.</summary>
        </member>
        <member name="T:PDM.App.ViewModels.MainViewModel.AddOutcome">
            <summary>Details returned by <see cref="M:PDM.App.ViewModels.MainViewModel.AddDownloadAsync(System.String,System.String,System.Boolean,System.Nullable{PDM.Core.Models.OverwritePolicy},PDM.Core.Models.RemoteFileInfo,System.Threading.CancellationToken)"/>.</summary>
        </member>
        <member name="M:PDM.App.ViewModels.MainViewModel.AddOutcome.#ctor(PDM.App.ViewModels.MainViewModel.AddResult,System.Uri,System.String,System.String)">
            <summary>Details returned by <see cref="M:PDM.App.ViewModels.MainViewModel.AddDownloadAsync(System.String,System.String,System.Boolean,System.Nullable{PDM.Core.Models.OverwritePolicy},PDM.Core.Models.RemoteFileInfo,System.Threading.CancellationToken)"/>.</summary>
        </member>
        <member name="M:PDM.App.ViewModels.MainViewModel.AddDownloadAsync(System.String,System.String,System.Boolean,System.Nullable{PDM.Core.Models.OverwritePolicy},PDM.Core.Models.RemoteFileInfo,System.Threading.CancellationToken)">
            <summary>
            Adds a URL to the queue, returning a structured outcome. If the URL looks like a web
            page (Content-Type text/html), <see cref="F:PDM.App.ViewModels.MainViewModel.AddResult.LooksLikeWebPage"/> is returned so
            the view can prompt the user for confirmation and hint at the browser extension.
            </summary>
        </member>
        <member name="M:PDM.App.ViewModels.MainViewModel.Dispose">
            <inheritdoc />
        </member>
        <member name="P:PDM.App.ViewModels.MainViewModel.SelectedCategory">
            <inheritdoc cref="F:PDM.App.ViewModels.MainViewModel._selectedCategory"/>
        </member>
        <member name="P:PDM.App.ViewModels.MainViewModel.SearchText">
            <inheritdoc cref="F:PDM.App.ViewModels.MainViewModel._searchText"/>
        </member>
        <member name="P:PDM.App.ViewModels.MainViewModel.SelectedItem">
            <inheritdoc cref="F:PDM.App.ViewModels.MainViewModel._selectedItem"/>
        </member>
        <member name="P:PDM.App.ViewModels.MainViewModel.HasSelection">
            <inheritdoc cref="F:PDM.App.ViewModels.MainViewModel._hasSelection"/>
        </member>
        <member name="P:PDM.App.ViewModels.MainViewModel.IsListEmpty">
            <inheritdoc cref="F:PDM.App.ViewModels.MainViewModel._isListEmpty"/>
        </member>
        <member name="P:PDM.App.ViewModels.MainViewModel.EmptyStateTitle">
            <inheritdoc cref="F:PDM.App.ViewModels.MainViewModel._emptyStateTitle"/>
        </member>
        <member name="P:PDM.App.ViewModels.MainViewModel.EmptyStateHint">
            <inheritdoc cref="F:PDM.App.ViewModels.MainViewModel._emptyStateHint"/>
        </member>
        <member name="M:PDM.App.ViewModels.MainViewModel.OnSelectedCategoryChanged(PDM.App.ViewModels.CategoryFilterItem)">
            <summary>Executes the logic for when <see cref="P:PDM.App.ViewModels.MainViewModel.SelectedCategory"/> just changed.</summary>
            <param name="value">The new property value that was set.</param>
            <remarks>This method is invoked right after the value of <see cref="P:PDM.App.ViewModels.MainViewModel.SelectedCategory"/> is changed.</remarks>
        </member>
        <member name="M:PDM.App.ViewModels.MainViewModel.OnSearchTextChanged(System.String)">
            <summary>Executes the logic for when <see cref="P:PDM.App.ViewModels.MainViewModel.SearchText"/> just changed.</summary>
            <param name="value">The new property value that was set.</param>
            <remarks>This method is invoked right after the value of <see cref="P:PDM.App.ViewModels.MainViewModel.SearchText"/> is changed.</remarks>
        </member>
        <member name="M:PDM.App.ViewModels.MainViewModel.OnSelectedItemChanged(PDM.App.ViewModels.DownloadItemViewModel,PDM.App.ViewModels.DownloadItemViewModel)">
            <summary>Executes the logic for when <see cref="P:PDM.App.ViewModels.MainViewModel.SelectedItem"/> just changed.</summary>
            <param name="oldValue">The previous property value that was replaced.</param>
            <param name="newValue">The new property value that was set.</param>
            <remarks>This method is invoked right after the value of <see cref="P:PDM.App.ViewModels.MainViewModel.SelectedItem"/> is changed.</remarks>
        </member>
        <member name="F:PDM.App.ViewModels.MainViewModel.showPopupCommand">
            <summary>The backing field for <see cref="P:PDM.App.ViewModels.MainViewModel.ShowPopupCommand"/>.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.MainViewModel.ShowPopupCommand">
            <summary>Gets an <see cref="T:CommunityToolkit.Mvvm.Input.IRelayCommand`1"/> instance wrapping <see cref="M:PDM.App.ViewModels.MainViewModel.ShowPopup(PDM.App.ViewModels.DownloadItemViewModel)"/>.</summary>
        </member>
        <member name="F:PDM.App.ViewModels.MainViewModel.pauseCommand">
            <summary>The backing field for <see cref="P:PDM.App.ViewModels.MainViewModel.PauseCommand"/>.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.MainViewModel.PauseCommand">
            <summary>Gets an <see cref="T:CommunityToolkit.Mvvm.Input.IAsyncRelayCommand`1"/> instance wrapping <see cref="M:PDM.App.ViewModels.MainViewModel.PauseAsync(PDM.App.ViewModels.DownloadItemViewModel)"/>.</summary>
        </member>
        <member name="F:PDM.App.ViewModels.MainViewModel.resumeCommand">
            <summary>The backing field for <see cref="P:PDM.App.ViewModels.MainViewModel.ResumeCommand"/>.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.MainViewModel.ResumeCommand">
            <summary>Gets an <see cref="T:CommunityToolkit.Mvvm.Input.IAsyncRelayCommand`1"/> instance wrapping <see cref="M:PDM.App.ViewModels.MainViewModel.ResumeAsync(PDM.App.ViewModels.DownloadItemViewModel)"/>.</summary>
        </member>
        <member name="F:PDM.App.ViewModels.MainViewModel.openFileCommand">
            <summary>The backing field for <see cref="P:PDM.App.ViewModels.MainViewModel.OpenFileCommand"/>.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.MainViewModel.OpenFileCommand">
            <summary>Gets an <see cref="T:CommunityToolkit.Mvvm.Input.IRelayCommand`1"/> instance wrapping <see cref="M:PDM.App.ViewModels.MainViewModel.OpenFile(PDM.App.ViewModels.DownloadItemViewModel)"/>.</summary>
        </member>
        <member name="F:PDM.App.ViewModels.MainViewModel.openFolderCommand">
            <summary>The backing field for <see cref="P:PDM.App.ViewModels.MainViewModel.OpenFolderCommand"/>.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.MainViewModel.OpenFolderCommand">
            <summary>Gets an <see cref="T:CommunityToolkit.Mvvm.Input.IRelayCommand`1"/> instance wrapping <see cref="M:PDM.App.ViewModels.MainViewModel.OpenFolder(PDM.App.ViewModels.DownloadItemViewModel)"/>.</summary>
        </member>
        <member name="T:PDM.App.ViewModels.SettingsViewModel">
            <summary>
            View-model backing the Settings dialog. Loads a snapshot of the current
            <see cref="T:PDM.Core.Models.AppSettings"/>, exposes editable properties, and writes them back
            atomically via <see cref="T:PDM.Core.Persistence.JsonSettingsStore"/> on save.
            </summary>
            <inheritdoc/>
            <inheritdoc/>
        </member>
        <member name="P:PDM.App.ViewModels.SettingsViewModel.Themes">
            <summary>Themes shown in the appearance dropdown.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.SettingsViewModel.AccentColors">
            <summary>Accent colour ids shown in the appearance picker.</summary>
        </member>
        <member name="M:PDM.App.ViewModels.SettingsViewModel.#ctor(PDM.Core.Models.AppSettings,PDM.Core.Persistence.JsonSettingsStore)">
            <summary>The settings snapshot being edited. Save applies it back to <paramref name="live"/>.</summary>
        </member>
        <member name="F:PDM.App.ViewModels.SettingsViewModel._confirmBrowserDownloads">
            <summary>Confirm browser-captured downloads before starting (default: true).</summary>
        </member>
        <member name="P:PDM.App.ViewModels.SettingsViewModel.OverwritePolicies">
            <summary>Overwrite policies exposed as ComboBox items.</summary>
        </member>
        <member name="F:PDM.App.ViewModels.SettingsViewModel._globalMaxKilobytesPerSecond">
            <summary>Global speed cap expressed in KB/s (0 = unlimited).</summary>
        </member>
        <member name="F:PDM.App.ViewModels.SettingsViewModel._validationError">
            <summary>Human-readable validation error shown in the dialog; empty means valid.</summary>
        </member>
        <member name="M:PDM.App.ViewModels.SettingsViewModel.SaveAsync">
            <summary>Persists the edits and reports whether the save succeeded (all values validated).</summary>
        </member>
        <member name="P:PDM.App.ViewModels.SettingsViewModel.ConfirmBrowserDownloads">
            <inheritdoc cref="F:PDM.App.ViewModels.SettingsViewModel._confirmBrowserDownloads"/>
        </member>
        <member name="P:PDM.App.ViewModels.SettingsViewModel.OverwritePolicy">
            <inheritdoc cref="F:PDM.App.ViewModels.SettingsViewModel._overwritePolicy"/>
        </member>
        <member name="P:PDM.App.ViewModels.SettingsViewModel.PostDownloadCommand">
            <inheritdoc cref="F:PDM.App.ViewModels.SettingsViewModel._postDownloadCommand"/>
        </member>
        <member name="P:PDM.App.ViewModels.SettingsViewModel.DefaultDownloadDirectory">
            <inheritdoc cref="F:PDM.App.ViewModels.SettingsViewModel._defaultDownloadDirectory"/>
        </member>
        <member name="P:PDM.App.ViewModels.SettingsViewModel.MaxSimultaneousDownloads">
            <inheritdoc cref="F:PDM.App.ViewModels.SettingsViewModel._maxSimultaneousDownloads"/>
        </member>
        <member name="P:PDM.App.ViewModels.SettingsViewModel.MaxConnectionsPerDownload">
            <inheritdoc cref="F:PDM.App.ViewModels.SettingsViewModel._maxConnectionsPerDownload"/>
        </member>
        <member name="P:PDM.App.ViewModels.SettingsViewModel.GlobalMaxKilobytesPerSecond">
            <inheritdoc cref="F:PDM.App.ViewModels.SettingsViewModel._globalMaxKilobytesPerSecond"/>
        </member>
        <member name="P:PDM.App.ViewModels.SettingsViewModel.UserAgent">
            <inheritdoc cref="F:PDM.App.ViewModels.SettingsViewModel._userAgent"/>
        </member>
        <member name="P:PDM.App.ViewModels.SettingsViewModel.ProxyUrl">
            <inheritdoc cref="F:PDM.App.ViewModels.SettingsViewModel._proxyUrl"/>
        </member>
        <member name="P:PDM.App.ViewModels.SettingsViewModel.Theme">
            <inheritdoc cref="F:PDM.App.ViewModels.SettingsViewModel._theme"/>
        </member>
        <member name="P:PDM.App.ViewModels.SettingsViewModel.AccentColor">
            <inheritdoc cref="F:PDM.App.ViewModels.SettingsViewModel._accentColor"/>
        </member>
        <member name="P:PDM.App.ViewModels.SettingsViewModel.ShowNotifications">
            <inheritdoc cref="F:PDM.App.ViewModels.SettingsViewModel._showNotifications"/>
        </member>
        <member name="P:PDM.App.ViewModels.SettingsViewModel.AutoStartAddedDownloads">
            <inheritdoc cref="F:PDM.App.ViewModels.SettingsViewModel._autoStartAddedDownloads"/>
        </member>
        <member name="P:PDM.App.ViewModels.SettingsViewModel.ScheduleEnabled">
            <inheritdoc cref="F:PDM.App.ViewModels.SettingsViewModel._scheduleEnabled"/>
        </member>
        <member name="P:PDM.App.ViewModels.SettingsViewModel.ScheduleStart">
            <inheritdoc cref="F:PDM.App.ViewModels.SettingsViewModel._scheduleStart"/>
        </member>
        <member name="P:PDM.App.ViewModels.SettingsViewModel.ScheduleEnd">
            <inheritdoc cref="F:PDM.App.ViewModels.SettingsViewModel._scheduleEnd"/>
        </member>
        <member name="P:PDM.App.ViewModels.SettingsViewModel.ValidationError">
            <inheritdoc cref="F:PDM.App.ViewModels.SettingsViewModel._validationError"/>
        </member>
        <member name="F:PDM.App.ViewModels.SettingsViewModel.saveCommand">
            <summary>The backing field for <see cref="P:PDM.App.ViewModels.SettingsViewModel.SaveCommand"/>.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.SettingsViewModel.SaveCommand">
            <summary>Gets an <see cref="T:CommunityToolkit.Mvvm.Input.IAsyncRelayCommand"/> instance wrapping <see cref="M:PDM.App.ViewModels.SettingsViewModel.SaveAsync"/>.</summary>
        </member>
        <member name="T:PDM.App.ViewModels.UpdateAvailableViewModel">
            <summary>
            View-model for the "Update Available" dialog. Handles the three states of the flow:
              - Prompt: show version + release notes with a Download and Install button.
              - Downloading: progress bar with cancel.
              - Ready: brief confirmation, then Apply.
            </summary>
            <inheritdoc/>
            <inheritdoc/>
            <inheritdoc/>
        </member>
        <member name="F:PDM.App.ViewModels.UpdateAvailableViewModel._progressPercent">
            <summary>0-100. Updated during download.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.UpdateAvailableViewModel.StagedPackagePath">
            <summary>Path to the staged package once <see cref="M:PDM.App.ViewModels.UpdateAvailableViewModel.DownloadAsync"/> succeeds.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.UpdateAvailableViewModel.Title">
            <inheritdoc cref="F:PDM.App.ViewModels.UpdateAvailableViewModel._title"/>
        </member>
        <member name="P:PDM.App.ViewModels.UpdateAvailableViewModel.ReleaseNotes">
            <inheritdoc cref="F:PDM.App.ViewModels.UpdateAvailableViewModel._releaseNotes"/>
        </member>
        <member name="P:PDM.App.ViewModels.UpdateAvailableViewModel.SizeText">
            <inheritdoc cref="F:PDM.App.ViewModels.UpdateAvailableViewModel._sizeText"/>
        </member>
        <member name="P:PDM.App.ViewModels.UpdateAvailableViewModel.ProgressPercent">
            <inheritdoc cref="F:PDM.App.ViewModels.UpdateAvailableViewModel._progressPercent"/>
        </member>
        <member name="P:PDM.App.ViewModels.UpdateAvailableViewModel.StatusText">
            <inheritdoc cref="F:PDM.App.ViewModels.UpdateAvailableViewModel._statusText"/>
        </member>
        <member name="P:PDM.App.ViewModels.UpdateAvailableViewModel.IsDownloading">
            <inheritdoc cref="F:PDM.App.ViewModels.UpdateAvailableViewModel._isDownloading"/>
        </member>
        <member name="P:PDM.App.ViewModels.UpdateAvailableViewModel.IsComplete">
            <inheritdoc cref="F:PDM.App.ViewModels.UpdateAvailableViewModel._isComplete"/>
        </member>
        <member name="P:PDM.App.ViewModels.UpdateAvailableViewModel.ErrorMessage">
            <inheritdoc cref="F:PDM.App.ViewModels.UpdateAvailableViewModel._errorMessage"/>
        </member>
        <member name="F:PDM.App.ViewModels.UpdateAvailableViewModel.downloadCommand">
            <summary>The backing field for <see cref="P:PDM.App.ViewModels.UpdateAvailableViewModel.DownloadCommand"/>.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.UpdateAvailableViewModel.DownloadCommand">
            <summary>Gets an <see cref="T:CommunityToolkit.Mvvm.Input.IAsyncRelayCommand"/> instance wrapping <see cref="M:PDM.App.ViewModels.UpdateAvailableViewModel.DownloadAsync"/>.</summary>
        </member>
        <member name="F:PDM.App.ViewModels.UpdateAvailableViewModel.cancelCommand">
            <summary>The backing field for <see cref="P:PDM.App.ViewModels.UpdateAvailableViewModel.CancelCommand"/>.</summary>
        </member>
        <member name="P:PDM.App.ViewModels.UpdateAvailableViewModel.CancelCommand">
            <summary>Gets an <see cref="T:CommunityToolkit.Mvvm.Input.IRelayCommand"/> instance wrapping <see cref="M:PDM.App.ViewModels.UpdateAvailableViewModel.Cancel"/>.</summary>
        </member>
        <member name="T:PDM.App.ViewModels.UpdateBannerViewModel">
             <summary>
             Backs the sidebar "update available" notice. Runs a silent background update check and, when a
             newer version is found, exposes it so the sidebar can gently surface an informational banner with
             a button that opens the update window. The user is informed, never forced: nothing downloads or
             installs until they choose to.
            
             UI-framework-agnostic (lives in the shared Core layer). It reuses <see cref="T:PDM.App.Services.UpdateOrchestrator"/>
             for the actual signed-manifest check; the head owns opening the update dialog when the user clicks.
             </summary>
            <inheritdoc/>
        </member>
        <member name="F:PDM.App.ViewModels.UpdateBannerViewModel._isUpdateAvailable">
            <summary>True once a background check has found a newer version; drives the sidebar notice.</summary>
        </member>
        <member name="F:PDM.App.ViewModels.UpdateBannerViewModel._headline">
            <summary>Short headline for the notice, e.g. "Update available".</summary>
        </member>
        <member name="F:PDM.App.ViewModels.UpdateBannerViewModel._versionText">
            <summary>Secondary line naming the version, e.g. "Version 1.2.0".</summary>
        </member>
        <member name="P:PDM.App.ViewModels.UpdateBannerViewModel.AvailableManifest">
            <summary>
            The manifest describing the available update, or null when none is available. The head reads
            this to open the update dialog when the user clicks the notice.
            </summary>
        </member>
        <member name="M:PDM.App.ViewModels.UpdateBannerViewModel.CheckAsync(System.Threading.CancellationToken)">
            <summary>
            Runs a background update check. Silent by design: any failure (offline, not configured, bad
            signature) simply leaves the notice hidden - the manual "Check for updates" action still
            reports problems. Safe to call repeatedly; overlapping calls are ignored.
            </summary>
        </member>
        <member name="P:PDM.App.ViewModels.UpdateBannerViewModel.IsUpdateAvailable">
            <inheritdoc cref="F:PDM.App.ViewModels.UpdateBannerViewModel._isUpdateAvailable"/>
        </member>
        <member name="P:PDM.App.ViewModels.UpdateBannerViewModel.Headline">
            <inheritdoc cref="F:PDM.App.ViewModels.UpdateBannerViewModel._headline"/>
        </member>
        <member name="P:PDM.App.ViewModels.UpdateBannerViewModel.VersionText">
            <inheritdoc cref="F:PDM.App.ViewModels.UpdateBannerViewModel._versionText"/>
        </member>
        <member name="T:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs">
            <summary>
            A helper type providing cached, reusable <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instances
            for all properties generated with <see cref="T:CommunityToolkit.Mvvm.ComponentModel.ObservablePropertyAttribute"/>.
            </summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.Status">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "Status" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.SummaryText">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "SummaryText" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.IsSelected">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "IsSelected" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.AutoOpenOnComplete">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "AutoOpenOnComplete" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.ShutdownWhenDone">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "ShutdownWhenDone" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.AutoExtractWhenDone">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "AutoExtractWhenDone" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.StatusText">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "StatusText" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.DetailText">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "DetailText" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.ActionLabel">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "ActionLabel" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.IsActionVisible">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "IsActionVisible" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.IsWarning">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "IsWarning" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.PlanName">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "PlanName" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.IsPremiumPlan">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "IsPremiumPlan" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.IsLimitedPlan">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "IsLimitedPlan" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.Snapshot">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "Snapshot" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.LicenseKey">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "LicenseKey" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.Fingerprint">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "Fingerprint" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.Message">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "Message" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.IsWorking">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "IsWorking" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.SelectedCategory">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "SelectedCategory" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.SearchText">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "SearchText" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.SelectedItem">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "SelectedItem" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.HasSelection">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "HasSelection" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.IsListEmpty">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "IsListEmpty" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.EmptyStateTitle">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "EmptyStateTitle" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.EmptyStateHint">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "EmptyStateHint" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.ConfirmBrowserDownloads">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "ConfirmBrowserDownloads" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.OverwritePolicy">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "OverwritePolicy" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.PostDownloadCommand">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "PostDownloadCommand" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.DefaultDownloadDirectory">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "DefaultDownloadDirectory" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.MaxSimultaneousDownloads">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "MaxSimultaneousDownloads" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.MaxConnectionsPerDownload">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "MaxConnectionsPerDownload" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.GlobalMaxKilobytesPerSecond">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "GlobalMaxKilobytesPerSecond" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.UserAgent">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "UserAgent" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.ProxyUrl">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "ProxyUrl" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.Theme">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "Theme" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.AccentColor">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "AccentColor" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.ShowNotifications">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "ShowNotifications" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.AutoStartAddedDownloads">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "AutoStartAddedDownloads" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.ScheduleEnabled">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "ScheduleEnabled" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.ScheduleStart">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "ScheduleStart" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.ScheduleEnd">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "ScheduleEnd" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.ValidationError">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "ValidationError" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.Title">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "Title" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.ReleaseNotes">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "ReleaseNotes" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.SizeText">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "SizeText" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.ProgressPercent">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "ProgressPercent" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.IsDownloading">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "IsDownloading" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.IsComplete">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "IsComplete" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.ErrorMessage">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "ErrorMessage" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.IsUpdateAvailable">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "IsUpdateAvailable" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.Headline">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "Headline" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.VersionText">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangingEventArgs"/> instance for all "VersionText" generated properties.</summary>
        </member>
        <member name="T:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs">
            <summary>
            A helper type providing cached, reusable <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instances
            for all properties generated with <see cref="T:CommunityToolkit.Mvvm.ComponentModel.ObservablePropertyAttribute"/>.
            </summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.Status">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "Status" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.SummaryText">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "SummaryText" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.IsSelected">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "IsSelected" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.AutoOpenOnComplete">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "AutoOpenOnComplete" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.ShutdownWhenDone">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "ShutdownWhenDone" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.AutoExtractWhenDone">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "AutoExtractWhenDone" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.StatusText">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "StatusText" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.DetailText">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "DetailText" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.ActionLabel">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "ActionLabel" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.IsActionVisible">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "IsActionVisible" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.IsWarning">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "IsWarning" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.PlanName">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "PlanName" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.IsPremiumPlan">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "IsPremiumPlan" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.IsLimitedPlan">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "IsLimitedPlan" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.Snapshot">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "Snapshot" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.LicenseKey">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "LicenseKey" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.Fingerprint">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "Fingerprint" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.Message">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "Message" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.IsWorking">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "IsWorking" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.SelectedCategory">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "SelectedCategory" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.SearchText">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "SearchText" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.SelectedItem">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "SelectedItem" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.HasSelection">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "HasSelection" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.IsListEmpty">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "IsListEmpty" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.EmptyStateTitle">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "EmptyStateTitle" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.EmptyStateHint">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "EmptyStateHint" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.ConfirmBrowserDownloads">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "ConfirmBrowserDownloads" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.OverwritePolicy">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "OverwritePolicy" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.PostDownloadCommand">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "PostDownloadCommand" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.DefaultDownloadDirectory">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "DefaultDownloadDirectory" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.MaxSimultaneousDownloads">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "MaxSimultaneousDownloads" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.MaxConnectionsPerDownload">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "MaxConnectionsPerDownload" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.GlobalMaxKilobytesPerSecond">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "GlobalMaxKilobytesPerSecond" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.UserAgent">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "UserAgent" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.ProxyUrl">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "ProxyUrl" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.Theme">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "Theme" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.AccentColor">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "AccentColor" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.ShowNotifications">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "ShowNotifications" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.AutoStartAddedDownloads">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "AutoStartAddedDownloads" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.ScheduleEnabled">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "ScheduleEnabled" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.ScheduleStart">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "ScheduleStart" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.ScheduleEnd">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "ScheduleEnd" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.ValidationError">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "ValidationError" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.Title">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "Title" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.ReleaseNotes">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "ReleaseNotes" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.SizeText">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "SizeText" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.ProgressPercent">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "ProgressPercent" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.IsDownloading">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "IsDownloading" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.IsComplete">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "IsComplete" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.ErrorMessage">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "ErrorMessage" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.IsUpdateAvailable">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "IsUpdateAvailable" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.Headline">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "Headline" generated properties.</summary>
        </member>
        <member name="F:CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.VersionText">
            <summary>The cached <see cref="T:System.ComponentModel.PropertyChangedEventArgs"/> instance for all "VersionText" generated properties.</summary>
        </member>
    </members>
</doc>
