import { Brush, BrushJSON, Color, ColorJSON, Feedback, FeedbackJSON } from "@scandit/web-datacapture-core";

//#region src/main/spark/SparkScanBarcodeFeedback.d.ts
interface SparkScanBarcodeErrorFeedbackJSON {
  type: "error";
  barcodeFeedback: {
    message: string;
    resumeCapturingDelay: number;
    visualFeedbackColor?: ColorJSON;
    brush?: BrushJSON;
    feedback?: FeedbackJSON;
  };
}
interface SparkScanBarcodeSuccessFeedbackJSON {
  type: "success";
  barcodeFeedback: {
    visualFeedbackColor?: ColorJSON;
    brush?: BrushJSON;
    feedback?: FeedbackJSON;
  };
}
type SparkScanBarcodeFeedbackJSON = SparkScanBarcodeErrorFeedbackJSON | SparkScanBarcodeSuccessFeedbackJSON;
declare abstract class SparkScanBarcodeFeedback {
  visualFeedbackColor: Color;
  feedback: Feedback;
  constructor(visualFeedbackColor: Color, feedback: Feedback);
  static defaultSuccessFeedback(): Feedback;
  static defaultErrorFeedback(): Feedback;
  static defaultSuccessBrush(): Brush;
  static defaultErrorBrush(): Brush;
  static success(): SparkScanBarcodeSuccessFeedback;
  abstract toJSONObject(): SparkScanBarcodeFeedbackJSON;
}
declare class SparkScanBarcodeErrorFeedback extends SparkScanBarcodeFeedback {
  message: string;
  resumeCapturingDelay: number;
  visualFeedbackColor: Color;
  brush: Brush;
  feedback: Feedback;
  constructor(message: string, resumeCapturingDelay: number, visualFeedbackColor?: Color, brush?: Brush, feedback?: Feedback);
  toJSONObject(): SparkScanBarcodeFeedbackJSON;
}
declare class SparkScanBarcodeSuccessFeedback extends SparkScanBarcodeFeedback {
  visualFeedbackColor: Color;
  brush: Brush;
  feedback: Feedback;
  constructor(visualFeedbackColor?: Color, brush?: Brush, feedback?: Feedback);
  toJSONObject(): SparkScanBarcodeFeedbackJSON;
}
//#endregion
export { SparkScanBarcodeSuccessFeedback as a, SparkScanBarcodeFeedbackJSON as i, SparkScanBarcodeErrorFeedbackJSON as n, SparkScanBarcodeSuccessFeedbackJSON as o, SparkScanBarcodeFeedback as r, SparkScanBarcodeErrorFeedback as t };