import type {CapturedResultBase} from "../core";
import type {DeskewedImageResultItem} from "./DeskewedImageResultItem";
import type {CapturedResultReceiver} from "../cvr";
import type {DetectedQuadResultItem} from "../ddn";
import type {EnhancedImageResultItem} from "./EnhancedImageResultItem";

/**
 * The ProcessedDocumentResult interface holds information on processed document result,
 * of type {@link DetectedQuadResultItem}, within an image.
 * @see {@link CapturedResultReceiver.onProcessedDocumentResultReceived}
 * */
export interface ProcessedDocumentResult extends CapturedResultBase {
  /**
   * Gets the deskew images with an array of {@link DeskewedImageResultItem}
   * */
  deskewedImageResultItems?: Array<DeskewedImageResultItem>;

  /**
   * Gets the detected boundaries with an array of {@link DetectedQuadResultItem}.
   * */
  detectedQuadResultItems?: Array<DetectedQuadResultItem>;

  /**
   * Gets the enhanced images with an array of {@link EnhancedImageResultItem}.
   * */
  enhancedImageResultItems?: Array<EnhancedImageResultItem>;
}
