/** * OverlayDataContext * * Provides data payloads associated with open overlays (the actual objects * dialogs need when open). The existing OverlayContext handles boolean * show/setShow flags; this context holds the associated data state. * * @since v2.10.0 */ import { type ReactNode } from 'react'; import type { SourceSuggestion } from '../../../core/auto-source/suggestion-review.js'; import type { OperationPreview } from '../../../core/preview/preview-types.js'; import type { RegistryPlugin } from '../../../core/registry/registry-types.js'; import type { Plugin, PluginUpdateInfo, SourceConfig } from '../../../core/types/index.js'; import type { ManualDropMatch } from '../../../workflows/complete-manual.js'; import type { BackupScheduleConfig } from '../../components/dialogs/BackupScheduleDialog.js'; import type { DownloadSummaryData } from '../../components/dialogs/DownloadSummaryDialog.js'; import type { DownloadDestination } from '../../components/dialogs/RegistryDownloadDialog.js'; interface SnapshotEntry { id: string; name: string; createdAt: Date; fileCount: number; totalSize: number; } interface SnapshotSelectDialogState { mode: 'restore' | 'rename' | 'delete'; snapshots: SnapshotEntry[]; } interface SnapshotRenameDialogState { snapshotId: string; currentName: string; } interface ResultDialogState { title: string; content: string | string[]; subtitle?: string; restartRequired?: boolean; } export interface OverlayDataContextValue { tagEditPluginName: string | null; setTagEditPluginName: (v: string | null) => void; groupEditPluginName: string | null; setGroupEditPluginName: (v: string | null) => void; comparePlugins: RegistryPlugin[]; setComparePlugins: (v: RegistryPlugin[]) => void; sourceConfigs: SourceConfig[]; setSourceConfigs: (v: SourceConfig[]) => void; pluginToEdit: Plugin | null; setPluginToEdit: (v: Plugin | null) => void; detailPluginName: string | null; setDetailPluginName: (v: string | null) => void; registryDownloadPlugin: RegistryPlugin | null; setRegistryDownloadPlugin: (v: RegistryPlugin | null) => void; registryDownloadLoading: boolean; /** Matches RegistryDownloadDialog.onConfirm */ handleRegistryDownload: (destination: DownloadDestination) => void; previewData: OperationPreview | null; setPreviewData: (v: OperationPreview | null) => void; backupScheduleConfig: BackupScheduleConfig; setBackupScheduleConfig: (v: BackupScheduleConfig) => void; profileLoading: boolean; setProfileLoading: (v: boolean) => void; changelogUpdate: PluginUpdateInfo | null; setChangelogUpdate: (v: PluginUpdateInfo | null) => void; resultDialog: ResultDialogState | null; setResultDialog: (v: ResultDialogState | null) => void; snapshotSelectDialog: SnapshotSelectDialogState | null; setSnapshotSelectDialog: (v: SnapshotSelectDialogState | null) => void; snapshotRenameDialog: SnapshotRenameDialogState | null; setSnapshotRenameDialog: (v: SnapshotRenameDialogState | null) => void; downloadSummaryData: DownloadSummaryData | null; setDownloadSummaryData: (v: DownloadSummaryData | null) => void; /** Pending source-suggestion review queue (Phase 2, v2.13.0). */ sourceSuggestions: SourceSuggestion[]; setSourceSuggestions: (v: SourceSuggestion[]) => void; /** Manual-drop completion candidates awaiting review (Phase 3, roadmap 3.2). */ completeManualMatches: ManualDropMatch[]; setCompleteManualMatches: (v: ManualDropMatch[]) => void; } export declare function OverlayDataProvider({ children, value, }: { children: ReactNode; value: OverlayDataContextValue; }): React.ReactElement; export declare function useOverlayDataContext(): OverlayDataContextValue; export {}; //# sourceMappingURL=overlay-data-context.d.ts.map