import type { Dispatch, SetStateAction } from "react";
import type { ScanViewProps, ScanViewControllerResult } from "../../types";

export interface ScanDetailsModalProps {
  open: boolean;
  latestCapture: ScanViewProps["latestCapture"];
  controller: Pick<ScanViewControllerResult, "parsedArtifact">;
  setDetailsOpen: (open: boolean) => void;
}

export interface ScanDiagnosticsModalProps {
  open: boolean;
  captureStatus: string;
  latestCapture: ScanViewProps["latestCapture"];
  controller: ScanViewControllerResult;
  setDetailsOpen: (open: boolean) => void;
  setDiagnosticsOpen: (open: boolean) => void;
}

export interface ScanReviewQueueModalProps {
  open: boolean;
  controller: ScanViewControllerResult;
  setReviewQueueOpen: (open: boolean) => void;
}

export interface ScanSettingsModalProps {
  open: boolean;
  latestCapture: ScanViewProps["latestCapture"];
  controller: ScanViewControllerResult;
  setSettingsOpen: (open: boolean) => void;
}

export interface ScanSummaryModalProps {
  open: boolean;
  controller: Pick<ScanViewControllerResult, "scanSummary" | "storedTotal">;
  setScanSummary: Dispatch<SetStateAction<ScanViewControllerResult["scanSummary"]>>;
  devMode: boolean;
}
