/** * CompleteManualDialog Component * * Review queue for manual-drop completion (Phase 3 — roadmap 3.2): lists * downloaded files matched to pending premium/manual updates so the user can * [a]ccept (install through the validated download path) or [s]kip per row; * [A] accepts every match, Esc closes. * * Install semantics live in workflows/complete-manual.ts (shared with * `pluginator complete`); the caller owns the actual install via onInstall * (AppViewRouter routes it through installManualDropMatches + rescan). * * Every row renders exactly 1 terminal line (height={1} + wrap="truncate") * to preserve the virtual-list/viewport invariant (see v2.11.53-57). * * @since v2.13.0 (Phase 3 — premium & long tail) */ import type React from 'react'; import type { ManualDropMatch } from '../../../workflows/complete-manual.js'; export interface CompleteManualDialogProps { /** Pending candidate→expectation matches (owned by App state via OverlayDataContext). */ matches: ManualDropMatch[]; /** Install the given matches via the validated install path. */ onInstall: (accepted: ManualDropMatch[]) => void; /** Persist the post-decision pending list back to the owning state container. */ onMatchesChange: (remaining: ManualDropMatch[]) => void; onClose: () => void; isActive?: boolean; maxHeight?: number; } export declare function CompleteManualDialog({ matches, onInstall, onMatchesChange, onClose, isActive, maxHeight }: CompleteManualDialogProps): React.ReactElement; //# sourceMappingURL=CompleteManualDialog.d.ts.map